Kom ihåg mig?
Home Menu

Menu


En SQL

Ämnesverktyg Visningsalternativ
Oläst 2008-01-26, 11:40 #1
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
klein klein är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Jul 2005
Inlägg: 2 225
SELECT op.orders_id,o.orders_id,op.final_price,op.product s_quantity,op.products_tax,o.date_purchased FROM orders_products op, orders o WHERE op.orders_id=o.orders_id

Finns det något snyggt sätt att summera op.final_price i samma fråga? Jag vill att samma fråga skall spotta ut en total så länge op.orders_id=o.orders_id med varandra

Typ

Order 1 2000:-
Order 2 2010:-

Detta är då orderrader , men vill ha ut en summa för varje order , helst i en och samma samma fråga om det går.

SQL: MySQL
klein är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-26, 11:58 #2
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Du kan ju använda sum för att summera men däremot så kan du inte summera och plocka ut enskilda rader från samma tabell i en och samma sql-sats.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-26, 12:57 #3
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
sum(kolumn) , kolumn1 group by kolumn,kolumn1 with rollup ger dig en extra rad med delsummor av kolumn när värdet i kolumn1 ändrar sig.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-26, 16:32 #4
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by Magnus_A@Jan 26 2008, 13:57
sum(kolumn) , kolumn1 group by kolumn,kolumn1 with rollup ger dig en extra rad med delsummor av kolumn när värdet i kolumn1 ändrar sig.
Vet du om det finns några fördelar med rollupfunktionen jämfört med att göra samma sak i scriptet efter hämtning? För klein är det väl inte relevant (är en webbshop förmodar jag?) men jag själv är mestadels inblandad i väldigt informationstunga sidor med mycket databasanrop och då blir varje liten optimeringsdetalj ganska viktig.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-26, 17:08 #5
martines avatar
martine martine är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Mar 2005
Inlägg: 767
martine martine är inte uppkopplad
Mycket flitig postare
martines avatar
 
Reg.datum: Mar 2005
Inlägg: 767
Om det bara är t.ex. delsummorna och den sammanlagda summan du vill ha kan du ju använda:

SELECT GROUP_CONCAT(pris), SUM(pris) FROM …

Den lösningen är ju inte så snygg om man har många detaljer om varje produkt man behöver få reda på.

Jag brukar göra en temporär tabell med hela "inköpslistan" och sedan summera listan och på så sätt få hela listan som en array med sista elementet som summering. Det har fördelen att man kan göra flera "undersökningar" av inköpslistan för att få fram andra värden samt att det blir översiktligt men har nackdelen att man behöver en temporär tabell (men bara ett anrop till databasen).
martine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-01-26, 17:22 #6
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Citat:
Originally posted by tartareandesire@Jan 26 2008, 17:32

Vet du om det finns några fördelar med rollupfunktionen jämfört med att göra samma sak i scriptet efter hämtning? För klein är det väl inte relevant (är en webbshop förmodar jag?) men jag själv är mestadels inblandad i väldigt informationstunga sidor med mycket databasanrop och då blir varje liten optimeringsdetalj ganska viktig.
Fördelen är att det är lite kod att skriva, och att jag antar att mysql summerar enklare och snabbare än vad ett script skulle göra. Men det finns säkert specialtillämpningar där man kan vända på steken.
Om dina sidor är väldigt informationstunga så kanske det blir lättare att lägga beräkningarna i databasfrågorna istället för i scripten.

Man kan också titta på möjligheten att göra två frågor, inte säkert att det kostar så mycket mera.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 02:44.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017