私は、次の列SQL Comapare行データ
PrinterModel
との単純なテーブルがあります。プリンタのモデルを。
PrinterName
:ユーザーのコンピュータに表示されるプリンタの名前。
PortName
:通常、IP、UNCパス、またはUSBです。
MachName
:プリンタが検出されたコンピュータ。私は次のクエリ
SELECT PrinterModel, PrinterName, PortName
FROM [ksubscribers].[dbo].[vCurrPrinterInfo]
WHERE PrinterModel NOT LIKE '%Microsoft%'
AND PrinterModel NOT LIKE '%PDF%'
AND PrinterModel NOT LIKE '%HP ePrint%'
AND PrinterModel NOT LIKE '%Snagit%'
AND PrinterModel NOT LIKE '%Nuance%'
AND PrinterModel NOT LIKE '%Amyuni%'
AND PrinterModel NOT LIKE '%Foxit%'
AND PrinterModel NOT LIKE '%Brother PC-FAX%'
AND PrinterModel NOT LIKE '%Remote Desktop%'
AND PrinterModel NOT LIKE '%Wondershare%'
ORDER BY PortName
にテーブルを作成している
は、基本的には、組織内のさまざまなコンピュータにインストールされたプリンタのコレクションです。同じプリンタを複数のコンピュータにインストールすることができます(ネットワークプリンタと考える)ので、テーブルには重複しています。 PortNameを使用して重複を識別することはできますが、一部の行でPortNameにわずかな違いが表示されます。 10.0.0.200および10.0.0.200_1。
PortName列のデータのみに焦点を当て、各データのデータが類似しているかどうかを比較することは可能ですか。 10.0.0.200と10.0.0.200_1の比較結果は1行ですか?ここで
はテーブル
Model | Name | Port
OKI MC560 (POS) | OKI MC560 Try 1 | 10.0.0.200
OKI MC560 (PCL) | OKI MC560 Try 2 | 10.0.0.200
OKI MC560 (PCL) | OKI MC560 Try 3 | 10.0.0.200_1
OKI MC560 (TST) | OKI MC560 Try 1 | 10.0.0.200
の一例です...そして、理想的に私は
OKI MC560(POS)を返します| OKI MC560お試しください| 10.0.0.200
いずれの行からでも1つの結果しか得られない限り、PrinterModel/Printer Nameのどの行が返されるかわかりません。
ここでも同様の質問を確認しましたが、SQL compare data from two tablesという違いがありますが、differenceコマンドを使ってテキスト文字列をどのように比較しているのかわかりません。
返されたデータとともに現在のクエリのスクリーンショットを添付しました。どんなアドバイスも大歓迎です。
'GROUP BY PortName'を使用できます。グループ化を使用する場合、選択領域の他の行は、MAX(PrinterModel)、MAX(PrinterName)のように集計する必要があります。例のようにPortNameが異なる場合は、PortNameを一意にする必要があります。たとえば、 '_1'を削除してください –