今日はSQLで解決できないような問題が発生しました。どのような助けや指針をいただければ幸いです。最初に合計してから値を掛ける
今、私がされて取得したいものを(labourentries.minutes_worked * price_per_hour/60)価格として、その後、グループにSUM(価格)を行うすべてのlabourtypeによるとそう私はlabourtypeごとにエントリの総合計を得るだろう。私はMySQLを使用しています
は、彼女はここにいくつかのサンプルデータを、私はこれまでのところ、いくつかのSQLを得たが、完全に私の問題を解決することができませんでした
です。
SELECT SUM(labourentries.minutes_worked) AS minutes_worked,
AVG(labourentries.price_per_hour) AS average_price,
count(labourtypes.id) AS amount,
labourtypes.labourtype
FROM labourtypes
INNER JOIN labourentries ON labourtypes.id = labourentries.labourtype_id
GROUP BY labourtypes.id
は、ここで私はprice_per_hourの平均とそのグループにそれを実行しようとしましたが、違いは、信頼できるには大きすぎます。
おかげさまで、ありがとうございました。 乾杯!私はこのコード行を追加することで、問題を解決することができたドミトリーEgorovさんのコメントで、クエリを編集した後
SELECT SUM(PRICE) AS PRICE_PER_LABOURTYPE, A.LABOUR_TYPE FROM
(SELECT (B.MINUTES_WORKED * B.PRICE_PER_HOUR/60) AS PRICE, A.LABOUR_TYPE FROM LABOURTYPES A
INNER JOIN LABORENTERIES B ON A.ID = B.LABOURTYPE_ID)
GROUP BY A.ID
説明が必要... labourtypesの2行または3行を記述してください。 2行または3行のlabourentriesを記述してください表 ---次に 最終的にどのような結果が見たいか2行または3行書き込んでください –
また、使用するdbms製品にもタグを付けます。 – jarlh
'labourentries'_and_ totalsの_every_行に' labourtypes.id'または単に合計だけの 'price'が必要ですか?後者が当てはまる場合(コードで示唆している)、 'sum(minutes_worked * price_per_hour/60)as Price'を単に使うことができます。簡略化されたデモを参照してください:http://sqlfiddle.com/#!9/ce93a/2 –