2010-11-22 85 views
0

我有這個表看起來像這樣SQL - 集團通過問題

CREATE TABLE `purchases` (
    `id` INT(10) NOT NULL AUTO_INCREMENT, 
    `totalAmount` INT(10) NOT NULL DEFAULT '0', 
    `storeId` INT(10) NOT NULL DEFAULT '0', 
    `purchaseDate` DATETIME NOT NULL, 
    PRIMARY KEY (`id`) 
) 

我要統計所有在某一天的購買,所以我認爲這是否

SELECT DATE_FORMAT(purchaseDate, '%m-%d-%Y') AS date, COUNT(id) AS totalPurchases FROM purchases GROUP BY DATE(purchaseDate) 

這條SQL語句返回我是這樣的

date  totalPurchases 
11-18-2010 5 
11-19-2010 10 
11-20-2010 10 

由於每次進貨被綁定到一家商店,我在想,如果有一個查詢,無線網絡將3列添加到該結果集與每個商店發生的購買計數給我這樣的事情

date  totalPurchases  store1 store2 store3 
11-18-2010 5     2   1   2 
11-19-2010 10     4   1   5 
11-20-2010 10     3   4   3 

在此先感謝!

回答

3
SELECT DATE_FORMAT(purchaseDate, '%m-%d-%Y') AS date, 
     COUNT(*) AS totalPurchases, 
     SUM(IF(storeId = 1, 1, 0)) AS store1, 
     SUM(IF(storeId = 2, 1, 0)) AS store2, 
     SUM(IF(storeId = 3, 1, 0)) AS store3 
    FROM purchases 
GROUP BY DATE(purchaseDate) 
+0

謝謝!這真的有助於...... – 2010-11-22 07:18:58

0

也許你可以使用匯總此,檢查出的文檔here