2010-11-22 4 views
0

tarafından Grubu Ben Böylece buSQL - konuların

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

yapar bu SQL deyimi var belirli bir günde tüm alımlarını saymak istiyor bu

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`) 
) 

benziyor bu tablo bir sorgu wi olduğunu varsa her alım bir mağazaya ilgili olduğundan bu beni bu

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

gibi bir şey döndüren, acaba Her mağazada yaşanan alımların sayısı ile beraber o resultset 3 sütun ekleyeceğiz önceden bana bu

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 

teşekkür gibi şeyler vermek!

cevap

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

Teşekkür bakın bunun için ROLLUP kullanabilirsiniz! Bu gerçekten yardımcı oldu .... –