SAS中文论坛
标题:
<求助> 这怎么做啊?
[打印本页]
作者:
shiyiming
时间:
2010-6-12 12:07
标题:
<求助> 这怎么做啊?
有一个表是在每个省,城市,区的各个产品的销量。 如下:
province city district product sales
A1 B1 C1 P1 100
A1 B1 C1 P2 200
A2 B2 C2 P1 1289
A2 B2 C2 P2 500
A2 B2 C2 P3 285
A3 B3 C3 P1 40
另外一个表是各个商店的系数,如下,
province city district Store Factors
A1 B1 C1 T1 1.5
A1 B1 C1 T2 2.1
A2 B2 C2 T1 1.2
A2 B2 C2 T2 1.5
A3 B3 C3 T1 2
我现在想要的是
province city district Product Store Sales
A2 B2 C2 P1 T1 =1289*1.2/(1.2+1.5)
A2 B2 C2 P1 T2 =1289*1.5/(1.2+1.5)
A2 B2 C2 P2 T1 =500*1.2/(1.2+1.5)
A2 B2 C2 P2 T2 =500*1.5/(1.2+1.5)
A2 B2 C2 P3 T1 =285*1.2/(1.2+1.5)
A2 B2 C2 P3 T2 =285*1.5/(1.2+1.5)
也就是把一表中的每一个产品的销量都按比例分到各个店里,比例是根据第二个表的店的系数。
每个地方的品种数量和商店的数量都不一样, 我要把所有的组合都列出来。
谢谢!!
作者:
shiyiming
时间:
2010-6-12 13:39
标题:
Re: <求助> 这怎么做啊?
[code:l9mh71ad]data sales;
input Province $ City $ District $ Product $ Sales;
datalines;
A1 B1 C1 P1 100
A1 B1 C1 P2 200
A2 B2 C2 P1 1289
A2 B2 C2 P2 500
A2 B2 C2 P3 285
A3 B3 C3 P1 40
;
data factor;
input province $ city $ district $ Store $ Factors;
datalines;
A1 B1 C1 T1 1.5
A1 B1 C1 T2 2.1
A2 B2 C2 T1 1.2
A2 B2 C2 T2 1.5
A3 B3 C3 T1 2
;
proc sql;
create table temp as
select f.province,f.city,f.district,s.product,f.store,
s.sales*f.factors/sum_factors as Sales format=8.2
from factor f,sales s,
(select province,city,district,sum(factors) as sum_factors
from factor
group by province,city,district) sum
where f.province=s.province=sum.province and
f.city=s.city=sum.city and
f.district=s.district=sum.district
order by f.province,f.city,f.district,s.product,f.store;
quit;[/code:l9mh71ad]
作者:
shiyiming
时间:
2010-6-15 06:46
标题:
Re: <求助> 这怎么做啊?
谢谢, 好用!!
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2