2012-05-03 17 views
5

Ho due tabelle in un database derby che voglio interrogare insieme.Query SQL con SOMMA su colonna in tabella JOIN

Orders 
+----+--------+--------------+------------+ 
| ID | UserID | PurchaseDate | TotalPrice | 
+----+--------+--------------+------------+ 
| 1 | 1 | TIMESTAMP | 7.00 | 

OrderItems 
+---------+-----------+----------+ 
| OrderID | ProductID | Quantity | 
+---------+-----------+----------+ 
| 1 |  1 |  2 | 

Voglio una query per restituire tutte le informazioni sull'ordine dalla tabella Ordini, così come il numero totale di prodotto associato a questo ordine.

Ho provato a pensare che avrebbe funzionato, ma ho ricevuto l'errore: "ID di riferimento colonna" non è valido. Quando l'elenco SELECT contiene almeno un aggregato, tutte le voci devono essere espressioni di aggregazione valide. "

SELECT 
orders.ID, orders.UserID, orders.PurchaseDate, orders.TotalPrice, SUM(Quantity) 
AS productCount 
FROM app.orders JOIN app.orderItems ON orders.ID=orderItems.OrderID 
+2

so perché qualcuno mi downvoted. I motivi spiegano come sono andate le pratiche del sito per riferimento –

risposta

9
SELECT 
app.orders.ID, app.orders.UserID, app.orders.PurchaseDate, app.orders.TotalPrice, SUM(app.orderItems.Quantity) 
AS productCount 
FROM app.orders JOIN app.orderItems ON app.orders.ID=app.orderItems.OrderID 
group by app.orders.ID, app.orders.UserID, app.orders.PurchaseDate, app.orders.TotalPrice 
+0

Ho ricevuto il seguente errore quando ho provato questo: La colonna "ORDERS.ID" non è presente in nessuna tabella nell'elenco FROM o appare all'interno di una specifica di join ed è esterna all'ambito della specifica di join o appare in una clausola HAVING e non è nella lista GROUP BY. Se si tratta di un'istruzione CREATE o ALTER TABLE, allora 'ORDERS.ID' non è una colonna nella tabella di destinazione. –

+0

Grazie mille per il vostro aiuto –

0

Penso che avete bisogno di un gruppo dalla clausola simile:

GROUP BY orders.ID,orders.UserID,orders.PurchaseDate,orders.TotalPrice 
Problemi correlati