[QueryString] Optelsom uit verschillende kolomen per ID

Pagina: 1
Acties:

  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 28-08 15:58
Het is een beetje een vage titel maar ik zal proberen uit te leggen wat me niet lukt:

Ik ben bezig met een ASP script die tijdlijsten moet produceren met daarbij verschillende onkosten. Er wordt in het tijdlijsten database de volgende gegevens ingevoerd: Ordernummer, Week, Jaar, Datum, aantal normale uren, aantal Overuren, Reisuren, en OnkostenId1, OnkostenId2, OnkostenId3, OnkostenBedrag1, OnkostenBedrag2, OnkostenBedrag3. Nu heb ik bijvoorbeeld de volgende database:

code:
1
2
3
4
5
Id        Ordernummer,  Week,   Jaar,   Datum,  OnkId1, OnkId2, OnkId3, OnkBedr1, OnkBedr2, OnkBedr3
1         123.456.7     43,    2002,        ,   1       9                1,28        0,12 
2         123.456.7     43,    2002,        ,   3       4      9         3,48        3,19     4,79
3         123.456.7     43,    2002,        ,   4       5                 0,28        2,12 
4         987.654.3     43,    2002,        ,   1       4      3        4,23         3,21     4,23

Nu moet op elke regel op de tijdlijst een optelsom van alle verschillende ordernummers komen, dus als van bovenstaande database een tijdlijst moet worden opgedrukt krijg je 2 regels, de eerste regel is ordernummer 123.456.7 en de tweede 987.654.3 en worden dus ALLE uren en kosten bij elkaar opgeteld. Het uren optellen enzo lukt me nu goed maar de kosten lukt mij echt niet.

Elk VERSCHILLEND Id nummer moet worden vertoond per regel maar als een id (in kolom OnkId1,2 of 3) meerdere keren voorkomt moet deze maar 1 keer worden geschreven maar de bedragen moeten wel met elkaar opgeteld worden!! En dat lukt me niet, is hier een standaard Querystring voor (Ik gebruik Acces 2000 db)?

Ik heb al iets gevonden:
code:
1
SQLstringOnk = "SELECT DISTINCT OnkostenId" & IdNr & " FROM Tijdlijst WHERE Regnummer LIKE '" & RegNum & "' AND OnkostenId" & IdNr & " <> '' AND Jaar LIKE '" & Jaar & "' AND (Week LIKE '" & Weeknummer & "' OR Week LIKE '" & (((Weeknummer*1)+1)*1) & "')"

En het stukje DISTINCT zorgt er dus voor dat hij maar 1 keer de zelfde waarde geeft, maar nu wil ik wel dat als er de zelfde Id's zijn dat hij de bedragen met de zelfde id's opteld??

Sorry dat ik dit erg verwarrend heb verteld maar als je het niet begrijpt, vraag 't dan maar???

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Kijk eens naar SUM en GROUP BY.

Never underestimate the power of


  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

code:
1
2
3
SELECT Ordernummer, SUM(OnkBedr1), SUM(OnkBedr2), SUM(OnkBedr3)
FROM Tijdlijst
GROUP BY Ordernummer