2016-12-19 28 views
-2

2つのテーブルを照会して結果を合計するにはどうすればよいですか。私は私がテーブル2つのテーブルと合計を照会

Job 
----- 
job_id 
job_cost 

そして第二に、テーブル

worker 
------ 
worker_id 
worker_name 

そして、ここを持っている意味は、ピボットテーブルで

finished_work 
-------- 
job_id 
worker_id 
hours 

だから私はfinished_workからすべての時間を合計するとjob_costに基づいてすべての完成作品の合計量を表示します。例

work_1 - 40 hours * 5(job_cost) = 200 
work_2 -3 hours * 15 = 45 

total = 245 

すべてのヘルプは

+0

期待される結果セットとともにいくつかのサンプルデータを投稿できますか? –

+0

「John、3時間、5時間あたりの建設」、「Peter、5時間、車の修理、10時間」 – user5996816

+0

Johnの料金は合計で15、Peterの合計は50です。私は両方の合計、つまり「65」です。どのようにクエリして合計するのか分かりません – user5996816

答えて

1

を高く評価しているおそらく、これを行うための最善の方法は、PROC SQLです。ここでは、2つのpro sql文を使用して、必要な中間ファイルを出力する例を示します。そうでなければ、2番目のSQLクエリを実行するだけです。

まず私たちはあなたのデータセットを作成しますについては申し訳ありません

proc sql noprint; 
    create table project as 
      select sum(total) as Grand_Total 
        from(select a.worker_name,b.hours,c.job_cost,b.hours*c.job_cost as total 
           from worker as a 
         left join finished as b 
          on a.worker_id = b.worker_id 
         left join job as c 
          on b.job_id = c.job_id);quit; 

proc sql noprint; 
create table projects as 
     select a.worker_name,b.hours,c.job_cost,b.hours*c.job_cost as total 
      from worker as a 
     left join finished as b 
      on a.worker_id = b.worker_id 
     left join job as c 
      on b.job_id = c.job_id;quit; 

、ここでは、最終的な答えは、すべて1つのステップである:

data job; 
job_id = 1; 
job_cost = 5; 
output; 
job_id = 2; 
job_cost = 10; 
output; 
run; 

data worker; 
worker_id = 1; 
worker_name = 'Jon'; 
output; 
worker_id = 2; 
worker_name = 'Peter'; 
output; 
run; 

data finished; 
job_id = 1; 
worker_id = 1; 
hours = 3; 
output; 
job_id = 2; 
worker_id = 2; 
hours = 5; 
output; 
run; 

ここ仲介SQLファイルがありますSASはこれがSASの質問から来ていると考えました。 SQL文はmysqlに対して有効です。proc sql noprint行を削除するだけです

+0

ありがとうございました! – user5996816

関連する問題