1

別の Web ページを介して追加できる自動化されたデータを含む 2 つの個別の csv テーブルがあります。これは静的データではなく、動的で変更可能です。

これが私の目的です:

  1. 各製品の 1 年間の売上 (数量と価格) の表を示す Web ページを作成します。ユーザーは年を選択できる必要があります。

これまでのところ、クエリでこれまでに得たものは次のとおりです。

SELECT Products.Name, SUM(MonthlySales.SalesVolume) as 'Total Sales'
FROM Products
INNER JOIN MonthlySales 
ON Products.Id=MonthlySales.Id
GROUP BY Products.Name;

その上で、検索をさらに絞り込むために、値 (年) を php で渡すことができる必要があります (これは私が実行できます)。私はこれを正しい方法で行っていますか?

サンプルデータ:

MonthlySales.csv

Id      ProductCode Month   Year    SalesVolume
23041   121           1     1980    983
23042   121           2     1980    960
23043   121           3     1980    939
23044   121           4     1980    927
23045   121           5     1980    931
23046   121           6     1980    950
23047   121           7     1980    975

製品.csv

Id,Name,Price
121,Jelly beans,6.79
122,Banana milkshake powder,8.31
123,Edam Cheese,18.73
124,Hairnet,8.05
125,Aubergine jam,2.66

最後に、次のようなものが表示される必要があります。

選択した年: 1980

Name                      Price      Volume
Jelly Beans               6.79       11000
Banana milkshake powder   8.31       15000

どんな助けでも大歓迎です。

4

1 に答える 1

1

あなたが持っているものは、それNameがユニークである限り機能しますが、おそらく最善の方法ではありません. IdフィールドではなくPK に基づいてグループを作成するため、これはより正確な場合がありNameます。

DECLARE @year char(4) = /*your year - datatype should be same as your year col*/;
DECLARE @month int = /*your month - datatype should be same as your month col*/;

SELECT Products.Name, Products.Price, Sales.totalSales AS 'Total Sales'
FROM Products
INNER JOIN (
            SELECT MonthlySales.ProductCode, 
                   SUM(MonthlySales.SalesVolume) AS 'totalSales'
            FROM MonthlySales 
            WHERE MonthlySales.Year = @year AND MonthlySales.Month = @month 
            GROUP BY MonthlySales.ProductCode
           ) AS Sales ON Sales.Id = Products.ProductCode
于 2013-08-21T18:21:40.663 に答える