私は、2つのテーブルを結合し、そこから一意の行を選択する必要があります。ここに私のデータのサンプルです:(複数の列がある)2つのテーブルを結合する一意の値を取得できません。
tbl1:
MB# MBName PCCNo_PRI Primary_IP PCCNo_SEC Secondary_IP ID
100 name 0 10.1.9.10 30 10.1.9.10 1
103 name3 17 10.1.9.27 47 10.1.9.67 4
403 name13 17 10.1.9.27 47 10.1.9.67 14
TBL2:
RTU PCC#_PRI PCC#_SEC STATION ADDRESS
15 0 30 6
52 12 42 1
53* 17 47 1
54 18 48 1
63 9 39 2
69* 17 47 2
私が与えられたために2つのテーブルを結合し、TBL2にユニークなRTU(複数可)を取得する必要がありますtbl1のMB#。 クエリ=
SELECT t1.MB#,t2.RTU,t2.[Device Manufacturer],t2.PCC#_PRI,t2.PCC#_SEC,t2.[STATION ADDRESS]
INTO C300_RTU_MASTERBLK_Map
FROM mbm_PCDIMasterBlk_tbl as t1, dbo.WOA_PCC_Conn_tbl as t2
WHERE t1.PCCNo_PRI = t2.PCC#_PRI
私は(*上記)TBL2 53と69のために重複した行を取得しています。 53は2つのエントリで終わります。 1〜103と1つの403(69は同じになる)。これをMBUに一意のRTU(s)としてどのように問い合わせることができますか?あなたはその後、それぞれの側
上の2行を与える「17」に参加するため
のいずれかを選択するMAX(またはMIN)を使用しているあなたは、あなたの結果はどうあるべきかを投稿することができますか?あなたはどの列を必要とするかをどうやって決めるのですか?たとえばpccNo_pri = 17の場合は53、69が必要ですか?論理は何ですか? – Kaf
'RTU'と' MB# 'の組み合わせの完全なセットを望むなら、結果は正しいです。結果は(RTU、PCCNo_PRI、MB#):(53,17,103)、(53,17,403)、(69,17,103)、(69,17,403) 。あなたのデータには、同じRTUが複数のMB#に適用されるコンボが明確に含まれているので、実際の問題は何ですか?どの行が「間違っているか」をどのように特定しますか? –
良い質問です。私はあなたが私の問題を露呈していると思います。私はそれが何であるべきかを知っていますが、皆さんが指摘するまで私の欠陥を見ることはできませんでした。これらのテーブルの1つをやり直すことができるかどうかを見てみましょう。 – cjjeeper