2016-10-14 72 views
0

我希望每天獲得銷售統計信息並計算出哪一部分銷售了多少。Group By Day和Section SQL

我真的很困惑「一切」。

$em = $this->getEntityManager()->getConnection(); 

$stmt = $em->prepare(" 
     SELECT 
      COUNT(o.id) AS `all`, 
      (
       SELECT COUNT(id) FROM order_panoramic_orders WHERE DAY(created_at) = DAY(NOW()) AND status_id NOT IN (7,9) 
      ) AS `day` 
     FROM 
      order_panoramic_orders as o 
     WHERE 
     status_id NOT IN (7,9) 
     "); 

我可以得到每日統計,但我不知道如何處理分節分離。

結果必須是儘可能是這樣的:

天:1 - 共計:10 - SECTION1:3,第2節:5,Section3中:2

任何想法?

順便提一下;

部分和用戶表是分開的。

我想加入這兩張表。

第一個表:訂單 二表:用戶 三表:部分

+0

您需要發佈表架構和樣本數據,以獲得幫助。 – andrews

+0

理想的結果也是一個很大的幫助。 –

回答

1

奇怪的查詢。你的查詢應該只是有條件的聚合。無需子查詢:

SELECT COUNT(*) AS `all`, 
     SUM(DAY(created_at) = DAY(NOW())) as day 
FROM order_panoramic_orders o 
WHERE status_id NOT IN (7, 9); 

然後,你可以使用同樣的想法部分:

SELECT COUNT(*) AS `all`, 
     SUM(DAY(created_at) = DAY(NOW())) as day, 
     SUM(section = 1) as section1, 
     SUM(section = 2) as section2, 
     SUM(section = 3) as section3 
FROM order_panoramic_orders o 
WHERE status_id NOT IN (7, 9); 
+0

很好的答案。但我不知道部分的數量。它可以是50或3. –

+0

順便說一下;我必須一天天得到結果。 1〜30〜31。 –