2017-09-03 19 views
1

私は、販売と材料の詳細である2つのテーブルをMySQLに持っています。 私はここで profit = (total) -(qty* landedcost)
あるアイテムを販売して作られた利益を計算するには、2つのテーブルの構造である: ​​2つの異なるテーブルから2つのカラムを掛け合わせてそれらをグループ化する

これは、クエリ

SELECT sale.name ,sale.total-(sale.qty * materialdetails.landingcost) AS 
result 
FROM sale JOIN materialdetails 
on sale.id = materialdetails.id 
GROUP BY sale.name,result; 

私が得る結果である: query result

このようなものを入力してください。

name   result 
    A4    5000 
Computer  40000 
Flash memory 1000 
Headphone  22000 
Mobile   35000 

どうぞよろしくお願いします。

SELECT sale.name ,sum(sale.total-(sale.qty * materialdetails.landingcost)) AS 
result 
FROM sale JOIN materialdetails 
on sale.id = materialdetails.id 
GROUP BY sale.name; 

説明:

答えて

1

あなたは、唯一のsale.nameすることにより、このようなものを結果とグループを合計する必要がありますが、二つのフィールドでグループあなたは同じsale.nameを持つすべてのレコードの1行を取得しますGROUP BY sale.name,result場合とresult、例えばので

name  result 

Computer 10000 
Computer 25000 

は、二つの異なるラインであり、それらは、一つとして一緒にグループ化されていません。

+0

ありがとうございました。私の一日を保存していただきありがとうございますが、全体の合計、つまり合計金額を合計したい場合はどうすればよいですか? – SMP

+0

@smp ['rollup'](https://dev.mysql.com/doc/refman/5.7/en/group-by-modifiers.html)を追加して、合計を取得します。合計を取得するには、 'SELECT sum(...)FROM ... 'を使用してください。 – user2314737

+0

私の問題を解決していただきありがとうございます、もう一度ありがとうございます。 – SMP

関連する問題