11. januar 2002 - 11:42Der er
2 kommentarer og 2 løsninger
Finde manglende spørgeskemaer
Hej Jeg har en MS SQL2k-server med 6 tabeller, alle tabeller kædes sammen via ID-felt. Den første (LBNR) indeholder en komplet liste over personer som har modtaget de forskellige spørgeskemaer. De øvrige tabeller (SPG1-5) indeholder de returnerede svar fra de 5 forskellige spørgeskemaer. Det jeg mangler er en SQL-sætning som kan returnere en liste over personer som har returneret min. 1 skema, men mangler at returner min. 1 skema, samt oplysninger om hvilket skemar der er besvarede/ikke besvarede?
SELECT LBNR.*, Not(SPG1.ID = Null) AS Retur1, Not(SPG2.ID = Null) AS Retur2, Not(SPG3.ID = Null) AS Retur3, Not(SPG4.ID = Null) AS Retur4, Not(SPG5.ID = Null) AS Retur5 FROM LBNR LEFT JOIN SPG1 ON LBNR.PersonID=SPG1.ID LEFT JOIN SPG2 ON LBNR.PersonID=SPG2.ID osv...
Det var bare teoretisk fremgangsmåde jeg PRØVEDE at anvise... ;-(
\'---------------------
NYT FORSØG: Har hver person i LBNR et ID-nummer, som bruges i tabellerne SPG1-5?
- kan man i bekræftende fald ikke: CREATE VIEW Svar(ID LONG, Spg LONG) AS SELECT ID, 1 FROM SPG1 UNION SELECT ID, 2 FROM SPG2 UNION SELECT ID, 3 FROM SPG3 UNION SELECT ID, 4 FROM SPG4 UNION SELECT ID, 5 FROM SPG5;
SELECT LBNR.*, COUNT(Svar.Spg) AS Antal FROM LBNR INNER JOIN Svar ON LBNR.ID=Svar.ID;
Jeg har fundet svaret selv ud fra dit første forsøg, dette her virker: SELECT LBNR.ID, SPG1.ID AS SPG1, SPG2.ID AS SPG2, SPG3.ID AS SPG3, SPG4.ID AS SPG4, SPG5.ID AS SPG5 FROM LBNR LEFT OUTER JOIN SPG1 ON LBNR.ID = SPG1.ID LEFT OUTER JOIN SPG2 ON LBNR.ID = SPG2.ID LEFT OUTER JOIN SPG3 ON LBNR.ID = SPG3.ID LEFT OUTER JOIN SPG4 ON LBNR.ID = SPG4.ID LEFT OUTER JOIN SPG5 ON LBNR.ID = SPG5.ID WHERE ((SPG1.ID IS NULL) OR (SPG2.ID IS NULL) OR (SPG3.ID IS NULL) OR (SPG4.ID IS NULL) OR (SPG5.ID IS NULL)) and not ((SPG1.ID IS NULL) and (SPG2.ID IS NULL) and (SPG3.ID IS NULL) and (SPG4.ID IS NULL) and (SPG5.ID IS NULL))
Tak for hjælpen.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.