システムwiki

SQLグループ化の問題

JoeTone 解決済 最終更新日:2021-06-14 16:56

以下は、2017年の情報をグループ化し、次に2018年の情報をグループ化し、ここで、クエリに2組のデータがある.私は2つの期間を組み合わせて分離していません.これを修正するためにSQLを変更するにはどうすればよいですか.ありがとうございました.

[2017_SW_PR_DIST]を選択します.[Employe ID]、[2017_SW_PR_DIST].[Employe Name(Last、First MI)]、employees.class、employes.hire_date、employees.cogs、Sum([2017_SW_PR_DIST].[稼得時間]) SUMOFERNING HARES]、合計([2017_SW_PR_DIST].[稼ぐ金額])


従業員の中古INFER JOIN 2017_SW_PR_DIST.[従業員ID]= [2017_SW_PR_DIST] [従業員ID]
[2017_SW_PR_DIST].[Employee ID]、[2017_SW_PR_DIST].[Employed Name(Last、First MI)]、employees.class、employes.hire_date、employes.cogs

Union All

[2018_SW_PR_DIST]を選択してください.[Employee ID]、[2018_SW_PR_DIST].[従業員の名前(最後、最初のMI)]、employees.class、employes.hire_date、employees.cogs、Sum([2018_SW_PR_DIST].[稼ぐ時間]) SUMOFERNING HARES]、SUM([2018_SW_PR_DIST].[稼ぐ金額])


従業員のINFER INNER JOIN 2018_SW_PR_DISTから[EMPLOYEE ID]= [2018_SW_PR_DIST].[従業員ID]
[2018_SW_PR_DIST].[Employee ID]、[2018_SW_PR_DIST].[Employed Name(Last、First MI)]、employees.class、employes.hire_date、employes.cogs

返信リスト(回答:2)

1 #
KenSher

Union All Operationを副問合せに入れることで、単一のクエリで実行できます.
[Employee ID]、[Employee Name(Last、First MI)]、
クラス、hire_date、cogs、
合計([稼ぐ時間])[稼ぐ時間の合計]、
合計([稼得額])[収入量の合計]、

(従業員を選択してください.[従業員ID]、[従業員の名前(最後、最初のMI)]、
クラス、hire_date、cogs、[獲得時間]、[獲得額]
社員からINFER JOIN 2017_SW_PR_DIST
従業員に.[従業員ID]= 2017_SW_PR_DIST.[従業員ID]
Unibual All
[Employee ID]、[Employee Name(Last、First MI)]、
クラス、hire_date、cogs、[獲得時間]、[獲得額]
社員からINFER JOIN 2018_SW_PR_DIST
従業員に.[従業員ID]= 2018_SW_PR_DIST.[従業員ID])
[Employee ID]、[Employee Name(Last、First MI)]、
クラス、hire_date、cogs;
ただし、データ名として符号化されているデータから結果を実行する必要がある.データベースリレーショナルモデルの基本原理は情報原則(CodDの規則#1)です.これには、すべてのデータを行の列位置に値として格納する必要があります.
table、そして他の方法ではありません.
その年の列を持つ単一のtableを持つことによって、そのWHERE句で問題の長年に制限される単純な集約クエリが使用されます.

2 #
dhookom

Union Allは重複の排除を排除します.私はあなたがあなたの組合照会に基づいて新しい合計クエリを作成する必要があるかもしれないあなたが一意の値を持つかもしれないと思います.