これを把握するためにあらゆることを試みましたが、正しい合計を取得できません。私の試みは、最新のレコードだけでなくすべてのレコードを追加するか、最初のレコードのみを取得します。
私の最初のテーブル: ハブ
hubID hubName
1 hub1
2 hub2
私の 2 番目のテーブル: hub_reports
reportID hubID date health school
1 1 2012-04-27 467 322
2 2 2012-04-23 267 22
3 1 2012-01-20 176 623
表示されるのは 2 つのテーブルです。1 つは組織名とその他の情報、もう 1 つは各組織が四半期ごとに提出するレポートです。すべての組織とその最新レポートをリストしたいと思います。テーブルの一番下に、現在利用可能なすべての健康キットとスクール キットを追加します。
すべての組織とその最新レポートを表示するために現在使用しているコードを次に示します。
SELECT * FROM (SELECT hubName, date, health, school FROM hub_reports,
hubs WHERE hub_reports.hubID = hubs.hubID ORDER BY date DESC) AS Total
GROUP BY hubName
これは機能しているように見えますが、健康と学校の列の合計を取得するために同じ戦術を試みると、正しい答えが得られません。
SELECT SUM(health) FROM (SELECT hubName, date, health FROM
hub_reports, hubs WHERE hub_reports.hubID = hubs.hubID ORDER BY date
DESC) AS Total GROUP BY hubName
別のフォーラムで見つけた LEFT JOIN アプローチを使用して他の方法を試しましたが、うまく機能していないようです。でも、私のやり方が悪かったのかもしれません。
助けてください!