可能做到这一点是PROC SQL的最佳途径。这里有一个例子,我使用两个pro sql语句来打印出你可能需要的中间文件。如果没有,你可以运行第二个sql查询。
首先我们创建自己的数据集:
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文件:
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;
,这里是最后的答案只需一个步骤:
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;
对不起SAS--认为这是来自SAS的问题。 sql语句对mysql有效,只需删除proc sql noprint行
来源
2016-12-19 18:56:16
DCR
您还可以发布一些示例数据以及预期结果集吗? –
示例数据如:约翰,3小时,每小时5英里施工,彼得5小时,汽车修理,每小时10英镑 – user5996816
因此,这里约翰收取总费用15,彼得总数为50.查询需要显示我总共从两个'65'。只是不知道如何查询和总结他们 – user5996816