SQL sætninger der viser rigtigt og forkert
Jeg har to sql-sætninger, hvor den ene regner rigtigt mens den anden regner forkert.Begge sql-sætninger er ud fra to parameter hvor jeg vil have den samlede sum ud fra projektnr og artnr samt måned og år. Jeg kan ikke finde ud af hvad der går galt med den sidste sql-sætning, for den har virket, men har lavet lidt om i tabellerne, men det burde ikke have nogen betydning i disse sql-sætninger.
Tabellerne er oprettet som følgende:
c.Execute _
"CREATE TABLE datainput(" & _
"DataID VARCHAR(40) PRIMARY KEY NOT NULL," & _
"projektnr VARCHAR(40) NOT NULL," & _
"artnr VARCHAR(40) NOT NULL," & _
"AfdelingID VARCHAR(40)," & _
"linjenr INTEGER NOT NULL," & _
"Beskrivelse VARCHAR(100)," & _
"OMFM VARCHAR(10)," & _
"Bevnr VARCHAR(40)," & _
"lonnummer INTEGER," & _
"DataDato DATETIME," & _
"Budgetaar INTEGER," & _
"OpretDato DATETIME," & _
"OpretBruger VARCHAR(10)," & _
"ModiDato DATETIME," & _
"ModiBruger VARCHAR(10))"
c.Execute ("Drop Table datainputBelob")
c.Execute _
"CREATE TABLE datainputBelob(" & _
"DataBelobID VARCHAR(40) PRIMARY KEY NOT NULL," & _
"Belob DECIMAL(18,5)," & _
"DataDato DATETIME," & _
"DataID VARCHAR(40) NOT NULL," & _
"OpretDato DATETIME," & _
"OpretBruger VARCHAR(10)," & _
"ModiDato DATETIME," & _
"ModiBruger VARCHAR(10))"
og der er efterfølgende lavet relation mellem tabellerne.
Denne regner rigtigt, idet jeg skal have sum(belob) x satsbelob for at regne timer gange sats ud.
Set rs1 = c.Execute("SELECT sum(belob) * Satsbelob as [belob], datainput.dataDato FROM datainputBelob INNER JOIN datainput ON datainput.dataId = DatainputBelob.dataID INNER JOIN medarbSats ON MedarbSats.lonnummer = datainput.lonnummer WHERE datainput.satstype = medarbSats.SatstypeID AND projektnr = '" & rs![Projektnr] & "' AND artnr = '" & rs![artnr] & "' AND month(datainputbelob.dataDato) = '" & t & "' AND year(datainputbelob.dataDato) = '" & Worksheets("Indtægt og omkostningsbudget").Range("Budgetår").Value & "' GROUP BY datainput.dataDato, Satsbelob")
Denne tager kun den første projektnr og artnr - selvom der er flere linjer med de samme oplysninger
Set rs1 = c.Execute("SELECT sum(belob) as [belob], datainput.dataDato FROM datainputBelob INNER JOIN datainput ON datainput.dataId = DatainputBelob.dataID WHERE projektnr = '" & rs![Projektnr] & "' AND artnr = '" & rs![artnr] & "' AND month(datainputbelob.dataDato) = '" & t & "' AND year(datainputbelob.dataDato) = '" & Worksheets("Indtægt og omkostningsbudget").Range("Budgetår").Value & "' GROUP BY datainput.dataDato")
Jeg kan ikke lige se, hvad jeg gør galt, for jeg mener at den virkede i sidste uge, uden at jeg har ændret i koden.
Nogen som kan gennemskue hvad jeg gør galt?