私はかなりMySQLに慣れていて、別のテーブルのカラムのデータによって1つのテーブルのカラムからデータを分割する必要があるクエリに取り組んでいます。私はサイトの周りの良い狩りを持っていますが、私が探しているものを見つけることができません(またはそれは私の部分の理解の欠如かもしれません)。私はTotalSpendをTotalHiresで割り、私がかなり近いと思っていますが、そうではありません。1つのテーブルの列のデータを別のテーブルの列のデータで分割するにはどうすればよいですか?
私は各列に4行のデータを持ち、実行する計算を4つ探しています。現在16の結果が返されています。私は、同じメンバIDに関連するデータを分割したいが、一方の列の各セルが他方の列の各セルによって分割されていると考える。 希望する4つの計算だけを返すようにコードを変更するにはどうすればよいですか?
総支出:
SELECT garment_hire_header.member_id, garment_hire_line.hire_id, SUM(garment_hire_line.days*catalogue.daily_rate) AS 'Total Spend'
FROM garment_hire_line
JOIN garment_hire_header ON garment_hire_line.hire_id = garment_hire_header.hire_id
JOIN garment ON garment_hire_line.garment_id = garment.garment_id
JOIN catalogue ON garment.catalogue_id = catalogue.catalogue_id
Group by garment_hire_header.member_id
TotalHires:ほぼ最終的なコードを作業
SELECT garment_hire_header.member_id, COUNT(garment_hire_header.hire_id) as TotalHires
FROM garment_hire_header
Group by garment_hire_header.member_id
は(16回の計算を返す):今すぐ
SELECT s.TotalSpend/h.TotalHires
from (SELECT SUM(garment_hire_line.days*catalogue.daily_rate) AS TotalSpend
FROM garment_hire_line
JOIN garment_hire_header ON garment_hire_line.hire_id = garment_hire_header.hire_id
JOIN garment ON garment_hire_line.garment_id = garment.garment_id
JOIN catalogue ON garment.catalogue_id = catalogue.catalogue_id
Group by garment_hire_header.member_id) s CROSS JOIN
(SELECT COUNT(garment_hire_header.hire_id) as TotalHires
FROM garment_hire_header
Group by garment_hire_header.member_id) h
それは私が働いていることちょっとプッシュしようとしているさらに。 hire_idが、私は別のクエリではなく、何らかの理由で過去に働いている以下を追加しようとしました
別のクエリで発見された場合、私はこの場合にのみ動作していないデータを表示したい:
WHERE garment_hire_line.hire_id IN
(SELECT hire_id, DATE_ADD(date_out, INTERVAL (days) DAY) AS 'Expected Return', DATEDIFF(return_date, DATE_ADD(date_out, INTERVAL (days) DAY)) as 'Days Late'
FROM garment_hire_line
WHERE DATEDIFF(return_date, DATE_ADD(date_out, INTERVAL (days) DAY)) > 0
ORDER BY hire_id)
こんにちはMartyn。ありがとう、それは私が何をしたのかを返します。私は、別のものを試してみると、物事を複雑にしてきたと思う。あなたの返信によって、私は一歩後退して再評価されました。私は、将来少しずつ違う方法でアプローチするかもしれない。乾杯! – Lumsden