Si chacune de vos requêtes ne renvoie qu'une seule ligne, vous pouvez utiliser :
SELECT
(select Start_Date
from table1 where Start_Date not in (
select End_Date
from table1)
) AS StartDate,
(select End_Date from table1
where End_Date not in (
select Start_Date
from table1)
) AS EndDate
Si vos requêtes renvoient plus d'une ligne, vous devez choisir une autre solution :
Vous pouvez utiliser UNION
:(Vous aurez les deux requêtes mal alignées avec "NULL" dans l'autre colonne)
(select Start_Date, Null AS EndDate
from table1 where Start_Date not in (
select End_Date
from table1)
)
UNION
(select Null As StartDate, End_Date
from table1
where End_Date not in (
select Start_Date
from table1)
)
Vous pouvez utiliser JOIN
Si vous avez un champ à utiliser comme "Join On", vous pouvez utiliser ce champ, sinon vous pouvez ajouter un champ à joindre (mais vous devez vérifier les données renvoyées pour éviter les erreurs) Vous devez également vérifier quel type de jointure peut être bon pour vous (Inner - Left - rigth) Dans l'exemple, j'ajoute un champ pour joindre et utiliser une Inner Join :
SELECT Start_Date, End_Date
FROM
(select 1 as InnerId, Start_Date
from table1 where Start_Date not in (
select End_Date
from table1)
) As Tab1
INNER JOIN
(select 1 as InnerId, End_Date from table1
where End_Date not in (
select Start_Date
from table1)
) AS Tab2
USING(InnerId)