0

それぞれが持つ3つのテーブルがあります-各テーブルを一致させ、一致しないそれぞれを返しAltidたいAltidID

例:

table a    Altindx                      600650                3970034000
                                        602469                4300221000
                                        611183                5012600000
                                        612415                2002501930

table b    Datindx                      600650                3970034001
                                        602469                4300221000
                                        611183                5012600000
                                        612415                2002501931

table c    Mtindx                       600650                3970034002
                                        602469                4300221001
                                        611183                5012600000
                                        612415                2002501930

altid でソートされたデータ

a       600650                3970034000
b       600650                3970034001
c       600650                3970034002

a       602469                4300221000    
b       602469                4300221000
c       602469                4300221001

a       611183                5012600000
b       611183                5012600000
c       611183                5012600000

a       612415                2002501930
b       612415                2002501931
c       612415                2002501930

レポートは次のようになります。

600650                   3970034000
                         3970034001
                         3970034002

602469                   4300221000 
                         4300221001

612415                   2002501930
                         2002501931

611183ID- すべての が一致するため、レポートに表示されません

4

3 に答える 3

0

これにより、すべてのテーブルが結合され、AltID と ID の各ペアが発生した回数がカウントされます。3 回出現するペアは結果から除外されます。これは、ペアが 3 つのテーブルすべてに存在することを意味するためです。

select AltID, ID
from (
    select AltID, ID from Altindx
    union all
    select AltID, ID from Datindx
    union all
    select AltID, ID from Mtindx
) x 
group by AltID, ID
having COUNT('') < 3
order by AltID, ID
于 2013-10-01T19:42:42.877 に答える
0
SELECT DISTINCT ID, Value FROM 
(
  SELECT A as T, ID, Value
  FROM altindex
  UNION ALL
  SELECT B as T, ID, Value 
  FROM latindex
  UNION ALL
  SELECT C as T, ID, Value 
  FROM mtindex
) sublist
WHERE
  COUNT(T) OVER (PARTITION BY ID, VALUE) > 1
于 2013-10-01T20:15:57.230 に答える
0

id2 つのフィールドがあり、1 つがで 2 つがであると仮定するとvalue、SQL クエリは次のようになります。

SELECT * FROM(
    SELECT id, value FROM altindex
    UNION
    SELECT id, value FROM latindex
    UNION
    SELECT id, value FROM mtindex
) index
ORDER BY index.id ASC, index.value ASC
于 2013-10-01T19:19:56.673 に答える