23. april 2007 - 10:34Der er
11 kommentarer og 1 løsning
SUM opgave
Har en lille SUM opgave der skal løses..
Min database: [KurvLinier] id | Brugersession | Variantid |
[Varianter] id | Pris | Tilbud | Tilbud pris
Jeg skal have fundet den samlet pris i min indkøbskurv, ud fra [kurvlinier]
Dvs, den skal gå ind og finde varinatid fra [kurvlinier], dykke ned i [Varinater] og finde prisen derfra.
MEN, skal tage højde for om varinaten er på tilbud. Så hvis kolonne "Tilbud" har værden 1 så skal TIlbudsprisen bruges - hvis "tilbud" har værdien 0, skal "pris" bruges.
Hvis vi nu lavede koden først så den bare beregnede på pris ville den se sådan ud: sql = "SELECT SUM(Varianter.pris * kurvlinier.Antal) AS KurvPris " & _ "FROM kurvlinier INNER JOIN Varianter ON KurvLinier.Variantid= Varianter.ID " & _ "WHERE kurvlinier.Brugersession = " & session.sessionID & ""
Det eneste vi så gør er at ændre Varianter.pris til en IIF sætning, så den tager den ene eller den anden kolonne, ud fra en betingelse: sql = "SELECT SUM(iif(Varianter.tilbud,Varianter.tilbudspris,Varianter.pris) * kurvlinier.Antal) AS KurvPris " & _ "FROM kurvlinier INNER JOIN Varianter ON KurvLinier.Variantid= Varianter.ID " & _ "WHERE kurvlinier.Brugersession = " & session.sessionID & ""
I dette tilfælde gør vi så yderlige brug af at 0=false og alle andre tal=true. Derfor behøver vi ikke skrive: iif(Varianter.tilbud=1,Varianter.tilbudspris,Varianter.pris)
Men kan nøjes med: iif(Varianter.tilbud,Varianter.tilbudspris,Varianter.pris)
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.