webForumDet fria alternativet

Sumera artiklar i en relationstabell..

Databaser & SQL

2 svar · 493 visningar · startad av evilaid

Medlem sedan apr. 2009433 inlägg
Frågan#1

Hej på er..

Jag försöker få till en fråga som hämtar från lite olika tabeller men som också ska hämta ärdet från en tabell och sumera.

Så här se koden ut nu..

SELECT     ord.id, ord.order_date, ord.status, ord.ip, ord.payment_method, ord.payment_code, ord.transport, ord.qp, cust.first_name, cust.last_name, 
                      cust.company, cust.id AS custId, cust.orgnr, cust.adress, lev.delivery_adress, lev.delivery_postal, lev.delivery_city, lev.delivery_phone, 
                      lev.package_note
FROM         vs_orders AS ord INNER JOIN
                      vs_customer AS cust ON ord.customer_id = cust.id LEFT OUTER JOIN
                      vs_lev_adress AS lev ON ord.del_adress = lev.id
ORDER BY ord.order_date DESC

denna utgår från order tabellen och är kopplad till en tabell för kunduppgifter och även en abell för leveransadress.

Saken är den att jag också har en tabell för artikklar som hör till orden med ett fält för pris. Så jag vill sumera alla artikklar i tabellen vs_artiklar som hör det till varje order?

Försökte med sum() i början på select satsen men får bara massa fel, står att dte måste grupperas???

Tacksam om någon har ideer kring detta?

mvh

Medlem sedan dec. 200012 464 inlägg
#2
select ord.id, 
       ord.order_date, 
       ord.status, 
       ord.ip, 
       ord.payment_method, 
       ord.payment_code, 
       ord.transport, 
       ord.qp, 
       cust.first_name, 
       cust.last_name, 
       cust.company, 
       cust.id AS custId, 
       cust.orgnr, 
       cust.adress, 
       lev.delivery_adress, 
       lev.delivery_postal, 
       lev.delivery_city, 
       lev.delivery_phone, 
       lev.package_note,
       (select sum(pris)
          from vs_artiklar
         where vs_artiklar.artikel_id = ord.artikel_id) as order_value
  from vs_orders as ord 
  join vs_customer as cust 
    on ord.customer_id = cust.id
  left join vs_lev_adress as lev 
    on ord.del_adress = lev.id
 order by ord.order_date desc

Du nämnde inga namn för kolumnerna så jag hitt på.

Medlem sedan apr. 2009433 inlägg
#3

Super gött lasse..
Precis så jag ville ha dte fungerade klockernt. Provade och såg också att man kan multiplicera olika fält i frågan.. Typ sum(pris*antal)..

Tack

659 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
532 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)