Citat:
Ursprungligen postat av
Perfecthairline
God afton!
Jag har en SQL-fråga som jag upplever som lite klurig och tänkte kolla om någon kan hjälpa mig.
Jag har 3 kolumner, en med identitet, vi kan säga att det är från A till H, en med händelser, vi kan säga 1 till 8, och ett med datum.
Det här är det kluriga. De flesta identiteten är kopplade till en händelse, exempelvis A är kopplad till händelse 2. Vissa av identiteterna kan dock innehålla fler händelser. För dessa händelser ska jag skapa en flagga.
Så om exempelvis identiteter A har två händelser, 4 och 5, så ska datumet styra flaggan. Om 4 har inträffat innan 5 så ska flaggan vara ”Ja”. Om 4 inträffar efter 5 så ska flaggan vara ”Nej”.
Har ni några tips på hur jag ska gå tillväga?
Du skriver SQL... Men vilken databasmotor? I SQL Server skulle jag förmodligen använda mig av en ranking function som man wrappar i en case-sats för att lösa det där (Sök på "t-sql ROW_NUMBER() OVER" så hittar du exempel). Men eftersom en ranking function bara funkar i select-delen och du vill använda resultatet från frågan, skulle jag lägga in hela frågan i en cte och presentera ett resultat därifrån. Alternativt att du kör en temptabell istället för cte.