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&#46;5
A1 B1 C1 T2 2&#46;1
A2 B2 C2 T1 1&#46;2
A2 B2 C2 T2 1&#46;5
A3 B3 C3 T1 2
;
proc sql;
        create table temp as
                select f&#46;province,f&#46;city,f&#46;district,s&#46;product,f&#46;store,
                                s&#46;sales*f&#46;factors/sum_factors as Sales format=8&#46;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&#46;province=s&#46;province=sum&#46;province and
                                        f&#46;city=s&#46;city=sum&#46;city and
                                        f&#46;district=s&#46;district=sum&#46;district
                        order by f&#46;province,f&#46;city,f&#46;district,s&#46;product,f&#46;store;
quit;[/code:l9mh71ad]
作者: shiyiming    时间: 2010-6-15 06:46
标题: Re: <求助> 这怎么做啊?
谢谢, 好用!!




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2