J'ai une table contenant 2 rangées par enregistrement. L'enregistrement initial, puis l'enregistrement lorsque sa fin est terminé, ils contiennent les mêmes informations à part une colonne de la deuxième ligne, l'emplacement est terminé.
WITH group1 AS (select * from a where closed is not null), group2 AS (select location from a where closed is not null) SELECT * FROM group1 JOIN group2 ON group1.ID = group2.NewID ;
4 Réponses :
Il semble que vous ayez besoin de rejoindre
select t1.*,t2.location from a t1 left join a t2 on t1.ID = t2.NewID where t1.closed is not null
Cela a-t-il même besoin des CTES? Vous pouvez facilement déplacer la logique sur le où code> et
sur code>
Vous pouvez utiliser cela pourrait aider.
select s1.*, s2.location as newlocation FROM tablename as s1 inner join tablename as s2 on s1.Id=s2.new_id
Vous avez besoin d'une jointure à gauche de la table:
La logique correcte sans CTES est la suivante:
select t1.*, t2.location from a t1 left join a t2 on t2.NewID = t1.ID and t2.closed is not null where t1.closed is not null