2016-05-24 12 views
1

同じカラムを持つ2015と2016のテーブルがあります。私は1つの列の別々の年から合計を表示しようとしています。異なるテーブルからの同じクエリ内の2つのカラムの合計

SELECT t16.`Dep Name`, sum(t16.`number_courses`) AS `Total 16`, sum(t15.`number_courses`) 
AS `Total 15` FROM `table_16` t16, `table_15` t15 
GROUP BY t16.`Dep Name` 

これは私に間違った合計を与えますが、私が別々に合計を行うと、うまく動作します。私はここで間違って何をしていますか?

編集:私の主な目標はビューを作成することでしたが、明らかにMySQL Documentationに従うサブクエリはビューではサポートされていません。私は同じ結果を達成し、ビューを作成する別の方法はありますか?

+0

は私たちにサンプルデータを表示してください。各テーブルの列は何ですか、そしてあなたの予想される出力と共にテーブルにいくつかの行を表示します。 –

答えて

0

本質的には、両方のテーブルの列のデカルト積を生成するCROSS JOINを実行しています。

あなたが代わりに最初集約し、その後が参加することができます:

SELECT t16.`Dep Name`, `Total 16`, `Total 15` 
FROM (
    SELECT `Dep Name`, 
     sum(`number_courses`) AS `Total 16` 
    FROM `table_16` 
    GROUP BY `Dep Name`) t16 
JOIN (
    SELECT `Dep Name`, 
     sum(`number_courses`) AS `Total 15` 
    FROM `table_15` 
    GROUP BY `Dep Name` 
) t15 ON t16.`Dep Name` = t15.`Dep Name` 
+0

私の主な目標はビューを作成することでしたが、明らかに[mysql documentation](http://dev.mysql.com/doc/refman/5.7/en/view-restrictions.html)サブクエリは再生回数私は同じ結果を達成し、ビューを作成する別の方法はありますか? – ybce

関連する問題