SQL SELECT uit een groep

stemmen
1

Stel we hebben de volgende tabel gegevens:

ID   parent    stage     submitted
1      1         1           1
2      1         2           1
3      1         3           0
4      1         4           0
5      5         1           1
6      5         2           1
7      5         3           1
8      5         4           1

Zoals je kunt zien hebben we 2 groepen (die dezelfde ouder hebben). Ik wil de laatste fase die wordt ingediend te selecteren. In het bovenstaande voorbeeld wil ik de ID`s 2 en 8. Ik ben helemaal verloren, dus als iemand kan helpen zal het duidelijk zijn veel te kiezen. :)

De vraag is gesteld op 19/05/2009 om 12:03
bron van user
In andere talen...                            


4 antwoorden

stemmen
-1
SELECT * FROM Table WHERE ID = 2 OR ID = 8

Is dit wat je wilt?

antwoordde op 19/05/2009 om 12:08
bron van user

stemmen
8

SELECT T.ID, T.PARENT, T.STAGE 
from
   T, 
   (
      select PARENT, MAX( STAGE) MAX_STAGE 
      from T
      where SUBMITTED = 1
      GROUP BY PARENT 
   ) M
where 
   T.STAGE = M.MAX_STAGE 
   AND T.PARENT = M.PARENT

Uitleg: Ten eerste, isoleert de maximum fase per groep ingediende = 1 (het binnenste select). Dan, lid worden van de uitslag met de echte tafel, om te filteren op de verslagen zonder max podium.

antwoordde op 19/05/2009 om 12:12
bron van user

stemmen
1
Select Parent, max(Id)
From tbl t
Inner Join
(
    Select Parent, max(Stage) as Stage
    from tbl t
    Where Submitted = 1
    Group by Parent
) submitted
on t.Parent = submitted.parent and
    t.stage = submitted.stage
Group by Parent
antwoordde op 19/05/2009 om 12:12
bron van user

stemmen
1

Dit zou het moeten doen:

SELECT
     T1.id,
     T1.parent,
     T1.stage,
     T1.submitted
FROM
     Some_Table T1
LEFT OUTER JOIN Some_Table T2 ON
     T2.parent = T1.parent AND
     T2.submitted = 1 AND
     T2.stage > T1.stage
WHERE
     T1.submitted = 1 AND
     T2.id IS NULL
antwoordde op 19/05/2009 om 12:13
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more