まずステップ:詳細テーブル用のフィルタを作成します
SELECT
MAX(id) AS id
FROM details
GROUP BY `concat`, `batch`
次のステップ:詳細テーブルに照会し、これを使用し
SELECT * FROM details
WHERE id IN (
SELECT
MAX(id) AS id
FROM details
GROUP BY `concat`, `batch`
)
次のステップ:この派生テーブルを使用しますあなたの最終結果にマスターテーブルに参加する
SELECT
`master`.id AS id,
`master`.plant AS plant,
`master`.`code` AS `code`,
COUNT(*) AS distinct_batches,
SUM(filtereddetails.volume) AS total_vol,
SUM(filtereddetails.`value`) AS total_val,
SUM(filtereddetails.volume*filtereddetails.risk) AS risk_vol,
SUM(filtereddetails.`value`*filtereddetails.risk) AS risk_val,
MAX(filtereddetails.end_date-filtereddetails.start_date) AS max_date_diff
FROM
`master`
INNER JOIN (
SELECT * FROM details
WHERE id IN (
SELECT
MAX(id) AS id
FROM details
GROUP BY `concat`, `batch`
)
) AS filtereddetails ON `master`.`concat`=filtereddetails.`concat`
GROUP BY
`master`.`concat`
ありがとう。私はもう一度家にいるとすぐにそれを試してみる。論理は私が探しているもののようです。 – Josef
Yupp、あなたは素晴らしいです!最後に私の問題は解決しました:) – Josef