18. december 2007 - 16:46Der er
4 kommentarer og 1 løsning
Hjælp til Select query
Hej... Jeg har en tabel som ser ca. sådan ud
@GUID Uniqueidentifier //PrimaryKey @SerialNo nvarchar(30) //Unik for et stykke værktøj / Vare. @HasReturned bit //Indiker om værktøjet/varen er lejet ud.
I denne tabel kan der være flere rækker indeholdende den samme @SerialNo , @SerialNo identificer en unik stykke værktøj. Disse værktøjer lejes ud (@HasReturned = false). Når de kommer hjem igen @HasReturned = true. Et stykke værktøj som er kommet hjem kan lejes ud igen, hvis dette sker indsættes en ny række i tabellen, med samme serialNo.
Der kan altid kun være en række (SerialNo) hvor @HasReturned = true.
Jeg skal nu lave en Select string som henter alle værktøjer ud af tabellen. Men jeg vil kun have 1 række pr. SerialNo. Findes der flere rækker med den samme SerialNo, vil jeg have rækken hvor @HasReturned = false, de andre rækker hvor @HasReturned = true skal den ikke tage med. (kun hvis der kun er 1 række med SerialNo = x, skal den tage rækken med selvom @HasReturned = true)
Håber der er nogen som har en løsning, som ikke indvolver en Cursor, da jeg skal bruge det i en enkelt Select!
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
SELECT [GUID], SERIALNO, HasReturned FROM Table_1 WHERE HasReturned = 0
UNION ALL
SELECT [GUID], SERIALNO, HasReturned FROM Table_1 WHERE SERIALNO IN ( SELECT SERIALNO FROM Table_1 GROUP BY SERIALNO HAVING MIN(CAST(HasReturned AS INT)) > 0 ) ORDER BY SERIALNO
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.