[sql] Sum error

Pagina: 1
Acties:

  • troyk
  • Registratie: Juni 2003
  • Laatst online: 02-12-2025

troyk

attrib -r troyk.nfo

Topicstarter
Ik heb mijn probleem in een ander (3 jaar oud) topic gezet. Vind het nogal vervelend om telkens nieuwe topics aan te maken.

http://gathering.tweakers...message/20724561#20724561

Maar ik zal het probleem ook hier plaatsen:

Deze query werkt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT qryblad1.machine_nummer, 
       qryblad1.bewerkings_tijd, 
       [qryBlad1].[Weeknr_startdatum],
       [qryBlad1].[Machine_naam], 
       [qryBlad1].[Machine_nummer], 
       [qryBlad1].[selcd], [qryBlad1].[prod_order], 
       [qryBlad1].[oms30], [qryBlad1].[aant_ord], 
       [qryBlad1].[afldat], 
       [qryBlad1].[Bewerkings_tijd], 
       [qryBlad1].[ord_status], 
       SUM([qryblad1].[bewerkings_tijd]) AS total
FROM qryBlad1
ORDER BY [Machine_naam];


Maar ik wil graag dat er in een nieuwe kolom (totaal) de bewerkings_tijd wordt opgeteld aan de hand van de machine_naam.

dus

Machine naam bewerkingstijd
200 3
200 4
200 18
200 45
Totaal: .. Sum()

toen dacht ik , zoiets:
code:
1
2
3
SELECT qryblad1.machine_nummer, SUM(qryblad1.bewerkings_tijd) as "Totaal", [qryBlad1].[Weeknr_startdatum], [qryBlad1].[Machine_naam], [qryBlad1].[Machine_nummer], [qryBlad1].[selcd], [qryBlad1].[prod_order], [qryBlad1].[oms30], [qryBlad1].[aant_ord], [qryBlad1].[afldat], [qryBlad1].[Bewerkings_tijd], [qryBlad1].[ord_status], SUM([qryblad1].[bewerkings_tijd]) AS total
FROM qryBlad1
ORDER BY [Machine_naam];


dat werkt dus niet, krijg ik de volgende foutmelding:
U probeert een query uit te voeren waarbij de opgegeven expressie : Machine_nummer geen deel uitmaakt van een statische functie.

alvast bedankt

[ Voor 3% gewijzigd door curry684 op 12-05-2004 13:17 . Reden: leesbaarheid ]

It's not who you are , it's who you know.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 24-05 14:53

NMe

Quia Ego Sic Dico.

Ik heb een dergelijk probleem wel eens opgelost door die functie, in jouw geval SUM, in een subquery te selecten, dus misschien kun je dat proberen. Maar er zijn vast wel betere oplossingen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Je moet logischerwijs een 'group by' doen op alle columns waar geen aggregerende functie zoals SUM, AVG oid op los wordt gelaten.

www.sqlcourse2.com ;)

Professionele website nodig?


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
GROUP BY, staat in de P&W faq

Oops! Google Chrome could not find www.rijks%20museum.nl


  • troyk
  • Registratie: Juni 2003
  • Laatst online: 02-12-2025

troyk

attrib -r troyk.nfo

Topicstarter
ok.. ik ga een group by proberen.
faq p & w ? oh great..die lees ik ook even door :)

It's not who you are , it's who you know.


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Kun je wat meer vertellen over je datamodel? Ik vraag me namelijk af welke kolommen uniek zijn.
Als machine_naam bijvoorbeeld uniek is, dan heeft een sum en/of group by geen effect.
Als machine_naam niet uniek is en machine_nummer wel dan betekent dat dus dat je de machine_naam meerdere keren terugkrijgt met bij elke het totaal.

Verder is het ook handig om te weten welk RDBMS je gebruikt.

Never underestimate the power of


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 25-05 22:48

Creepy

Tactical Espionage Splatterer

cameodski schreef op 12 mei 2004 @ 13:31:
Kun je wat meer vertellen over je datamodel? Ik vraag me namelijk af welke kolommen uniek zijn.
Als machine_naam bijvoorbeeld uniek is, dan heeft een sum en/of group by geen effect.
Als machine_naam niet uniek is en machine_nummer wel dan betekent dat dus dat je de machine_naam meerdere keren terugkrijgt met bij elke het totaal.

Verder is het ook handig om te weten welk RDBMS je gebruikt.
Blijft staan dat, behalve in MySQL, je een foutmelding krijgt als je geen group-by gebruikt terwijl je wel een aggregated functie gebruikt ;)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • cameodski
  • Registratie: Augustus 2002
  • Laatst online: 06-11-2023
Creepy schreef op 12 mei 2004 @ 13:57:
Blijft staan dat, behalve in MySQL, je een foutmelding krijgt als je geen group-by gebruikt terwijl je wel een aggregated functie gebruikt ;)
Behalve als de query herschreven wordt, naar hetgeen wat NMe84 waarschijnlijk bedoelt: een join doen op een select statement, waarin per machine_naam een totaal wordt berekend.
Je krijgt dan zo'n soort constructie:
code:
1
2
3
4
5
6
7
8
9
SELECT  q1.machine_naam,
        q2.total,
        ...
FROM    qryBlad1 AS q1
JOIN    ( SELECT machine_naam,
                 SUM (bewerkings_tijd) AS total
          FROM    qryBlad1
          GROUP BY machine_naam
        ) AS q2 ON (q2.machine_naam = q1.machine_naam)

Never underestimate the power of

Pagina: 1