2014-09-01 30 views
0

我有一個數據庫,我需要將用戶組合在一起,然後將發票金額總和。我似乎無法想象這樣做的優雅方式,我嘗試通過IF語句使用每個用戶ID通過while循環進行迭代,但此方法不實用,因爲後面添加的每個新用戶都需要添加新的if語句。PHP/SQL組行和加總列

SQL實例

UserID Invoice InvoiceAMT 
419  1  20.00 
419  2  30.99 
420  3  30.00 
421  4  1.00 
419  5  60.00 

我想回報

UserID Total Invoices Total Amount 
419   3   110.99 
420   1    30.00 
421   1    1.00 
+1

這是一個基本的聚合查詢。如果您要使用SQL,您應該學習基礎知識。 – 2014-09-01 20:36:25

+1

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html – 2014-09-01 20:36:51

+0

或者使用示例http://www.w3schools.com/sql/sql_groupby.asp – dacuna 2014-09-01 20:37:15

回答

0

使用GROUP BY與空間SUM()

SELECT UserID, COUNT(Invoice) `Total Invoices`, SUM(InvoiceAMT) `Total Amount` 
FROM table 
GROUP BY UserID 

列名壞的,所以避免它們。例如,而不是Total Invoices,您應該使用TotalInvoicesTotal_Invoices

+0

您確定' SUM'適用於'Total Invoices'? – 2014-09-01 20:39:01

+0

@JaredFarrish不,不是,我認爲count更合適。 – idmean 2014-09-01 20:39:58

+0

我曾嘗試使用聚合函數,但是即使如上所述,我的代碼仍然爲每行生成一行,而不是將所有相同的用戶ID組合在一起。 – Seth 2014-09-01 21:15:12