2013-04-09 23 views
0

我有這樣的代碼,它給了我給定月份的每個產品的小計。如何獲得表格中最近12個月的銷售小計?

<?php 
    include("dbaseconn.php"); 




    $query = "SELECT product, SUM(qty) FROM sh_orders GROUP BY product"; 

    $result = mysql_query($query) or die(mysql_error()); 

    // Print out result 
    while($row = mysql_fetch_array($result)){ 
     echo "<table width='1050'>" ; 
     echo "<td width='400'>"; 
     echo "". $row['product']. " "; 
     echo "</td>"; 
     echo "<td>"; 
     echo "". $row['SUM(qty)']. "" ; 
     echo "</td>"; 
     echo "<br />"; 
    } 
    ?> 

表結構

CREATE TABLE IF NOT EXISTS `sh_orders` (
    `building` varchar(50) NOT NULL, 
    `qty` varchar(5) NOT NULL, 
    `product` varchar(50) NOT NULL, 
    `order_id` bigint(5) NOT NULL AUTO_INCREMENT, 
    `unik` varchar(50) NOT NULL, 
    `order_date` varchar(25) NOT NULL, 
    `co_id` varchar(20) NOT NULL, 
    UNIQUE KEY `unik` (`unik`), 
    UNIQUE KEY `id` (`order_id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ; 

我想說明過去12周月的銷售額 - SUM(數量)確實是我,但我需要單獨看每一個月,每一個產品和其總銷售額那個月。我需要這一個表每個月顯示該月

EXPECTED RESULT 
Month: January 2012 Feb 2012 Marc 2012 
Product1: 124    105   76 
Product2: 34     23   56 
Product3: 12     5   6 

我是新來這個,所以請表現出耐心與每個產品總,如果我問一個百萬個問題。

回答

0

查詢更改爲

$query = "SELECT product, SUM(qty) FROM sh_orders where Product_month between '2011-01-01' and '2012-01-01' GROUP BY product"; 
0

這是你需要的查詢:

SELECT order_date, product, SUM(qty) as sum_qty 
FROM sh_orders 
WHERE order_date > DATE_SUB(CURDATE(), INTERVAL 1 YEAR) 
GROUP BY YEAR(order_date), MONTH(order_date), product 

sqlfiddle


結果是這種格式的數組:

array(
    array(
     'order_date' => '2012-09-02', 
     'product' => 'p2', 
     'sum_qty' => '2' 
    ), 
    array(
     // etc... 
    ) 
); 

你只需要遍歷它並以表格的形式顯示結果。如果您在創建表格時遇到問題,最好在此接受答案並提出一個新問題,因爲它與html,loopsarrays更相關。

+0

好吧,迄今爲止的迴應非常驚人,謝謝大家。我想也許我沒有解釋清楚我想做什麼。我想得到一份報告,可以爲每個月的每個產品單位銷售情況。例如Jan2012 Product1 23,Product 3 12 then 2012年2月Product1 35,Product3 42等等。我試圖張貼我想要實現的圖片,但不會接受圖片上傳/。我可能還需要幫助格式化結果的外觀。 – user2260925 2013-04-09 11:28:20

+0

是的,謝謝你,我試了一下,現在的查詢工作。我需要把它放在報告格式中,正如我在原始問題中所顯示的那樣,關於如何才能做到這一點的任何想法? – user2260925 2013-04-10 09:38:30

+0

然後我再次用正確的信息編輯我的答案。 – enenen 2013-04-11 07:54:11

1
SELECT product,sum(qty),DATE_FORMAT(product_month, '%Y-%m') as month 
FROM sh_orders 
WHERE product_month BETWEEN DATE_SUB(now(), INTERVAL 12 MONTH) 
AND now() group by DATE_FORMAT(product_month, '%Y%m'),product 

每個產品在同一個月和不同日期有一些數量。首先按月分組,每月相同產品數量總結。第二組產品,避免在同一個月內產品重複

+0

你能解釋一下你的代碼嗎?它可能會幫助新手 – Korcholis 2013-04-09 10:19:41

+0

每個產品在同一個月和不同日期都有一些數量。 先按月分組,每月統一產品數量。 第二組產品,避免產品重複在同一月份 – Vaishu 2013-04-09 10:30:25

+0

讓我給答案本身添加解釋。 – Korcholis 2013-04-09 10:40:00

相關問題