1.変更し、あなたのテーブルstructur
あなたのdbテーブルの構造は良くありません。 製品の品種をカラムとして使用するのは方法ではありません。むしろ構造、次の使用:
Product:
ProductID | Product | Price
____________________________
1 | walnuts | 16
2 | cashew | 25
3 | peanuts | 4
Sells (each product kilograms sold):
Day | ProductID | Amt | Price
__________________________________
1 | 1 | 2 | 15
1 | 2 | 3 | 25
1 | 3 | 1 | 4
2 | 1 | 8 | 16
2 | 2 | 6 | 23
2 | 3 | 25 | 5
3 | 1 | 1 | 16
3 | 2 | 3 | 25
3 | 3 | 12 | 4
実際の販売価格は、日ごとに変わることができるので、私は、セルズテーブルに価格の列を置きます。
この構造のテーブルを一度集計すると、グループ化することができます。続き は、MySQLのクエリです:
SELECT SUM(Amt * Price) AS total FROM Sells WHERE Day=2 GROUP BY Day
あなたは、それ自体が製品に昼と製品ごとに詳細を確認したい場合は、次のよう試すことができます。
SELECT p.ProductID, p.Product, SUM(s.Amt * s.Price) AS total
FROM Sells AS s
LEFT JOIN Product AS p ON s.ProductID = p.ProductID
WHERE s.Day=2 GROUP BY s.Day, s.Product
2.つもりはない変更された場合、その後...
@Kanagaraj Dhanapalの答えはあなたのものになります。
テーブルデザインを変更する必要があります。値を使用しないでください。 –
これがSQL Serverの場合は、簡単に行うために 'UNPIVOT'節を使用できますが、いずれの場合でも値を列名として使用したくない場合があります。 –
ねえ..私は推測しますが、私は今すぐ立ち往生しています:/任意の提案? –