09. oktober 2007 - 12:42Der er
9 kommentarer og 1 løsning
En anden måde at lave mange AND efterlyses
Mit program genererer følgende script:
select bolig_ref from BoligAttributRel where (1 = 1) and (attribut_ref = 1) and (attribut_ref = 51) and (attribut_ref = 2) and (attribut_ref = 11) and (attribut_ref = 521) and (attribut_ref = 9) and (attribut_ref = 4);
Det kan blive til mange AND'er og spørgsmålet er om man gøre det på en anden måde, eventuelt en der minder om IN-operatoren? Pseudoeksempelvis:
select bolig_ref from BoligAttributRel where (attribut_ref "ISALL" (1,51,2,11,521,9,4));
Jeg er ret sikker på MSSQL, når den fortolker en eventuel løsning, vil lave det om til mit nuværende script, men kan man koge det voluminøse script ned.
Jeg vil skyde på han vil have de bolig_ref der opfylder alle attributter.
Utestet, men må være ca. sådan: SELECT bolig_ref FROM BoligAttributRel WHERE attribut_ref IN (1,51,2,11,...) GROUP BY bolig_ref HAVING COUNT(bolig_ref)=AntalAttributter
rif1900: Det er en mange-til-mange tabel, og hrc vil have alle de boliger der har et bestemt sæt attributter (og evt. flere). Han fik bare ikke formuleret det helt så godt. ;)
pidgeot: Takker, var da godt nok en smule forvirret hehe :)
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.