楼主: jolterheadmmtt
5453 12

求教高手——如何在sas/sql中实现转置?? [推广有奖]

  • 8关注
  • 2粉丝

硕士生

50%

还不是VIP/贵宾

-

威望
0
论坛币
122 个
通用积分
0.0067
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
3519 点
帖子
154
精华
0
在线时间
106 小时
注册时间
2012-9-19
最后登录
2014-9-3

楼主
jolterheadmmtt 发表于 2012-11-14 01:37:41 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有表a:   dep   mon     yj                  
              01     一月    8
              02     一月    10
              02     二月    9
              03     一月    7
              03     三月    6
              04      三月    11




表b:      dep           name
              01             国内营业部1
              02             国内营业部2
              03             国内营业部3
              04             国际营业部




如何通过proc sql过程 得到如下形式的显示结果:
             dep     name      一月业绩   二月业绩  三月业绩
              01
              02
              03
              04


捯饬了一晚上也没得出结果,请哪位高手指教


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:sql proc sql name 营业部 ROC sql 如何

回帖推荐

pobel 发表于2楼  查看完整内容

一个比较笨的方法: data test; input dep $ mon $ yj ; cards; 01 Jan 8 02 Jan 10 02 Feb 9 03 Jan 7 03 Mar 6 04 Mar 11 ; proc sql; create table test1 as select distinct dep, sum(yj*(mon="Jan")) as Jan , sum(yj*(mon="Feb")) as Feb , sum(yj*(mon="Mar")) as Mar from test group by dep; quit;

本帖被以下文库推荐

沙发
pobel 在职认证  发表于 2012-11-14 08:31:27
一个比较笨的方法:
data test;
  input dep $   mon $     yj ;
  cards;
01  Jan 8
02  Jan 10
02  Feb 9
03  Jan 7
03  Mar 6
04  Mar 11
;

proc sql;
  create table test1 as
   select distinct dep, sum(yj*(mon="Jan")) as Jan
                      , sum(yj*(mon="Feb")) as Feb
                                          , sum(yj*(mon="Mar")) as Mar
                from test
         group by dep;
quit;

已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
bakoll + 3 + 3 精彩帖子
若水烟寒 + 1 + 1 + 1 观点有启发
davil2000 + 1 + 2 + 3 热心帮助其他会员

总评分: 经验 + 3  论坛币 + 3  学术水平 + 2  热心指数 + 3  信用等级 + 4   查看全部评分

和谐拯救危机

藤椅
jolterheadmmtt 发表于 2012-11-14 08:54:07
pobel 发表于 2012-11-14 08:31
一个比较笨的方法:
data test;
  input dep $   mon $     yj ;
谢谢哈 ,这个方法比我想的简单多了!
不过这里有一个问题,没有业绩的应该是显示缺失啊,和0还不太一样,虽然说这里并不影响……

板凳
pobel 在职认证  发表于 2012-11-14 09:03:06
jolterheadmmtt 发表于 2012-11-14 08:54
谢谢哈 ,这个方法比我想的简单多了!
不过这里有一个问题,没有业绩的应该是显示缺失啊,和0还不太一样 ...
proc sql;
  create table test1 as
   select distinct dep, sum(yj*ifn(mon="Jan",1,.)) as Jan
                      , sum(yj*ifn(mon="Feb",1,.)) as Feb
                                          , sum(yj*ifn(mon="Mar",1,.)) as Mar
                from test
         group by dep;
quit;
和谐拯救危机

报纸
zhentao 发表于 2012-11-14 10:32:16
顺道学习的。

地板
jolterheadmmtt 发表于 2012-11-14 11:24:36
pobel 发表于 2012-11-14 09:03
proc sql;
  create table test1 as
   select distinct dep, sum(yj*ifn(mon="Jan",1,.)) as Jan
太谢谢了,问题解决了

7
nomad5 发表于 2012-11-14 12:48:02
为什么一定要用sql呢》

8
jolterheadmmtt 发表于 2012-11-15 09:25:42
nomad5 发表于 2012-11-14 12:48
为什么一定要用sql呢》
因为题目要求

9
redbaby_jia 发表于 2012-11-15 16:09:27
学习啦

10
spssone 发表于 2012-11-15 17:38:42
佩服!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 06:39