16. juli 2002 - 14:16Der er
8 kommentarer og 1 løsning
udførsel af flere forespørgsler m. sql
Hejsa Jeg er igang med at lave et rekvisitionssystem/fakturasystem. Jeg vil gerne udføre to forespørglser (én ?) således at jeg indenfor et givent datointerval kan finde ud af, hvormeget, der er blevet indkøbt for hos forskellige leverandører. Dvs. altså sige records hvor der både er match på dato OG på leverandør. Jeg er selv nået frem til følgende, men den returnerer også alle records indenfor datointervallet, der IKKE indeholder nogen leverandør : sSQL=sSQL & "SELECT DISTINCTROW leverandoer1,SUM([antal1]*[enhedspris1]) AS Totalpris FROM Rekvisition WHERE leverandoer1='"&leverandoer&"' GROUP BY leverandoer1 UNION ALL SELECT DISTINCTROW leverandoer2, SUM([antal2]*[enhedspris2]) AS Totalpris2 FROM Rekvisition WHERE leverandoer2='"&leverandoer&"' GROUP BY leverandoer2 UNION ALL SELECT DISTINCTROW leverandoer3, SUM([antal3]*[enhedspris3]) AS Totalpris3 FROM Rekvisition WHERE leverandoer3='"&leverandoer&"' GROUP BY leverandoer3 UNION ALL SELECT DISTINCTROW leverandoer4, SUM([antal4]*[enhedspris4]) AS Totalpris4 FROM Rekvisition WHERE leverandoer4='"&leverandoer&"' GROUP BY leverandoer4 UNION ALL SELECT DISTINCTROW leverandoer5, SUM([antal5]*[enhedspris5]) AS Totalpris5 FROM Rekvisition WHERE leverandoer5='"&leverandoer&"' GROUP BY leverandoer5 UNION ALL SELECT DISTINCTROW leverandoer6, SUM([antal6]*[enhedspris6]) AS Totalpris6 FROM Rekvisition WHERE leverandoer6='"&leverandoer&"' GROUP BY leverandoer6 UNION ALL SELECT DISTINCTROW leverandoer7, SUM([antal7]*[enhedspris7]) AS Totalpris7 FROM Rekvisition WHERE leverandoer7='"&leverandoer&"' GROUP BY leverandoer7 UNION ALL SELECT DISTINCTROW leverandoer8, SUM([antal8]*[enhedspris8]) AS Totalpris8 FROM Rekvisition WHERE leverandoer8='"&leverandoer&"' GROUP BY leverandoer8 UNION ALL SELECT DISTINCTROW leverandoer9, SUM([antal9]*[enhedspris9]) AS Totalpris9 FROM Rekvisition WHERE leverandoer9='"&leverandoer&"' GROUP BY leverandoer9 UNION ALL SELECT Dato, Rekvnummer FROM Rekvisition WHERE Dato Between #"&beginDate&"# AND #"&endDate&"#"
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg kan ikke helt lige overskue hvad det er du vil, men du kan sagtens lave to sql forespørgslen. Du placere dem i hver sin variabel og kalder så efterfølgende variabler
strData1= SELECT * from ******** where strData2= SELECT * from ******** where
Jeg vil gerne have to kriterier i min forespørgsel nemlig dato og leverandør. F.eks først udvælge alle records indenfor de sidste 3 måneder og så finde alle de records hvor én af leverandørerne er IBM.
I princippet kunne jeg sikkert først køre en query, som udvælger alle poster i et bestemt datointerval og så senere køre dette recordset igennem for at finde alle records hvor en af leverandørerne er IBM, men det må da kunne gøres i én omgang. Kører jeg eksempelvis: sSQL = sSQL & "SELECT DISTINCTROW leverandoer1 FROM Rekvisition WHERE leverandoer1='ibm' AND Dato Between #7/9/2002# AND #7/16/2002#" får jeg alle poster indenfor den sidste uge, hvor IBM er leverandør1. Det er dét jeg gerne vil opnå hvilket er ret nemt, når dato-kriteriet kun skal kombineres med ét andet felt. Men hver faktura (=post i databasen) kan indeholde op til 9 leverandører (leverandoer1, leverandoer2 etc.).Derfor skal dato-kriteriet kombineres med 9 felter
Kan du ikke bare skrive sSQL = sSQL & "SELECT DISTINCTROW leverandoer1 FROM Rekvisition WHERE (leverandoer1='ibm' OR leverandoer2='ibm' OR leverandoer3='ibm' ...) AND Dato Between #7/9/2002# AND #7/16/2002#"
Synes godt om
Slettet bruger
19. juli 2002 - 00:00#8
Tror du ikke du skulle have brugt en relation. Så vidt jeg forstår det har du 9 felter i en tabel som hedder leverandør1, leverandør2 osv. jeg tror også det ville gøre din SQl meget nemmere.
Ved at tage udgangspunkt i ras2000s indlæg lykkedes det - tak for det. Jo, jeg tror også at min db ikke er organiseret helt optimalt. Der burde nok være flere relationer istedet for bare én tabel
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.