Sql udvælgelse...HJÆLP..

Tags:    databaser

<< < 12 > >>
Hej..

Har en SQL udvælgelse jeg ikke kan få til og fungere..(MS-SQL-VB.NET)
-----------------------------------
DATA :

ProjID - Changeddate - StatusID
1 12/3/2010 2
1 13/3/2010 6
1 15/3/2010 5
2 10/2/2010 2
2 13/2/2010 6
3 08/2/2010 5
3 10/2/2010 6

RESULTAT :

ProjID - Changeddate - StatusID
2 13/2/2010 6
3 10/2/2010 6
------------------------------------

Jeg skal bruge de poster hvor den sidste registrering(Changeddate) er StatusID=6

Jeg har følgende SQL :

SELECT G_PROJ.PROJID, G_PROJ.PLANNEDENDDATE, G_PROJ.TASK_NAME, G_PROJ.DESCR, G_PROJSTATUS.STATUSID,G_PROJSTATUS.CHANGEDDATE AS DATE

FROM G_PROJ INNER JOIN G_PROJSTATUS ON G_PROJ.PROJID = G_PROJSTATUS.FK_PROJECT

WHERE (G_PROJSTATUS.CHANGEDDATE IN
(SELECT MAX(G_PROJSTATUS_1.CHANGEDDATE) AS DATE
FROM G_PROJ AS G_PROJ_1 INNER JOIN
G_PROJSTATUS AS G_PROJSTATUS_1 ON G_PROJ_1.PROJID = G_PROJSTATUS_1.FK_PROJECT
GROUP BY G_PROJ_1.PROJID))

GROUP BY G_PROJ.PLANNEDENDDATE, G_PROJ.TASK_NAME, G_PROJ.DESCR, G_PROJSTATUS.STATUSID, G_PROJSTATUS.CHANGEDDATE, G_PROJ.PROJID

HAVING (G_PROJSTATUS.STATUSID = 6)

ORDER BY G_PROJ.PROJID DESC

Dette virker dog ikke, da den medtager alle poster med StatusID=6, også selv om det ikke r den sidste dato (Changeddate)..

Håber nogen kan hjælpe:: :-)














Indlæg senest redigeret d. 12.03.2010 08:58 af Bruger #15471
13 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
I de sample data du giver, der har 1 og 3 da også en status 6, så skal de vel også skrives ud?

Her er hvad jeg er kommet frem til.

Fold kodeboks ind/udSQL kode 




Hej René

Med udgangspunkt i dit sidste indlæg, har jeg lavet følgende SQL-forespørgelse. I dit ønskede resultat bruger du kun data fra G_Proj-tabellen - ønsker du også dato'en for sidste ændring af status, skal det laves en smule anderledes. Koden er ikke testet, men idéen bag burde virke, nemlig at gå alle projekter igennem og så hente status fra den sidste statusændring hørende til projektet.

Fold kodeboks ind/udSQL kode 




Indlæg senest redigeret d. 14.03.2010 18:05 af Bruger #2416
.... LIMIT 1



Hej Robert..

Ved ik lige hvad du mener..

LIMIT virker da ik i MS-SQL, gør det ...



Hej Robert..

Ved ik lige hvad du mener..

LIMIT virker da ik i MS-SQL, gør det ...


ah...havde ikke lige set at det var MS-SQL, så kan du gøre følgende istedet:
Fold kodeboks ind/udKode 




Hej Robert..

Ved ik lige hvad du mener..

LIMIT virker da ik i MS-SQL, gør det ...


ah...havde ikke lige set at det var MS-SQL, så kan du gøre følgende istedet:
Fold kodeboks ind/udKode 


Hej..

Kan ik bruge Top (1), da den jo begrænser resultatet. Jeg skal bruge alle poster i tabellen. For hver PROJID - den sidste registrede post(Changeddate)- men KUN hvis den har StatusID=6....



Jeg har ikke haft mulighed for at teste, men hvad bliver resultatet af dette:

Fold kodeboks ind/udSQL kode 




Indlæg senest redigeret d. 12.03.2010 12:47 af Bruger #6559
Jeg har ikke haft mulighed for at teste, men hvad bliver resultatet af dette:

Fold kodeboks ind/udSQL kode 


Hej..

Ja det var den første model jeg prøvede, men den returnere også bare alle med STATUSID =6, uanset dato på Changeddate.

Tror måske det har noget at gøre, med at den VIL ha en Group By på G_Projstatus.statusID, som så gør at den tar alle med alligevel..





Kunne man komme til at se din tabelstruktur? Evt så jeg har noget at test med.



Hvis du har et unik id til hver række i din tabel, så vil du kunne bruge noget i denne stil.

Fold kodeboks ind/udSQL kode 




<< < 12 > >>
t