0
votes

SQL Combinez 2 Sélectionnez des instructions pour obtenir des données des deux rangées.

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 ;


0 commentaires

4 Réponses :


0
votes

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


1 commentaires

Cela a-t-il même besoin des CTES? Vous pouvez facilement déplacer la logique sur le et sur



0
votes

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


0 commentaires

0
votes

Vous avez besoin d'une jointure à gauche de la table: xxx


0 commentaires

0
votes

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


0 commentaires