0

これまでのところ、特定の月の各製品の小計を提供するこのコードがあります。

 <?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 (qty) がそれをやってくれますが、各製品とその月の総売上を月ごとに個別に表示する必要があります。各製品とその月の合計を毎月表示する 1 つのテーブルでこれが必要です

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

私はこれに慣れていないので、何百万もの質問をする場合は忍耐を示してください.

4

3 に答える 3

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

各製品には、同じ月と異なる日にいくつかの数量があります。最初のグループは月ごとで、同じ製品数量が毎月合計されます。商品ごとに 2 番目のグループ化、同じ月の商品の重複を避ける

于 2013-04-09T09:59:01.817 に答える
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

于 2013-04-09T09:38:21.893 に答える
0

クエリをに変更します

  $query = "SELECT product, SUM(qty) FROM sh_orders where Product_month between '2011-01-01' and '2012-01-01' GROUP BY product"; 
于 2013-04-09T09:29:03.467 に答える