Ich habe zwei Tabellen:SQL: Kombinieren von zwei SQL-Abfragen
T_CHAMBRE_CHB (CHB_NUM);
T_PLANNING_PLN (PLN_JOUR ,CHB_NUM, PLN_LIBRE);
Ich habe diese Werte in es:
T_CHAMBRE_CHB:
1
2
3
4
T_PLANNIG_CHB:
1 2000-01-12 1 False
2 2000-01-12 2 False
3 2000-01-13 1 False
4 2000-01-13 2 False
5 2000-01-13 4 True
Ich möchte die Zimmerbesprechung bekommen die 13 janvier 2000 für Informationen, wenn ein Raum ist in der Planung nicht (hier 3), die es frei bedeuten, so sollte das Ergebnis sein:
CHB_NUM PLN_LIBRE
----------- ---------
1 False
2 False
3 True
4 True
Ich habe diese Anfrage:
SELECT DISTINCT TCC.CHB_NUM, TPP.PLN_LIBRE
FROM T_CHAMBRE_CHB AS TCC,
T_PLANNING_PLN AS TPP
WHERE TCC.CHB_NUM=TPP.CHB_NUM AND TPP.PLN_JOUR = '2000-01-13'
UNION
SELECT DISTINCT TCC.CHB_NUM, TPP.PLN_LIBRE
FROM T_CHAMBRE_CHB AS TCC,
T_PLANNING_PLN AS TPP
WHERE TCC.CHB_NUM NOT IN (SELECT DISTINCT (TPP2.CHB_NUM) FROM T_PLANNING_PLN AS TPP2);
ich dieses Ergebnis:
1 1 False
2 2 False
3 3 False
4 3 True
5 4 True
ich weiß nicht, warum ich die dritte Zeile (3 ----> false)
ich glaube, ich sho Verwenden Sie eine OUTER UNION, aber SQL Server mag die Syntax nicht.
Keine Notwendigkeit für SELECT DISTINCT 'wenn 'UNION', da 'UNION' doppelte Zeilen entfernt. Keine Notwendigkeit für "SELECT DISTINCT" wenn "[NOT] IN" (Unterabfrage.) – jarlh