奇怪啊,我用Pivot怎么出问题呢?

superhasty 2005-10-21 04:36:36
表数据如下:

ID U_Name SP_ID Month_Fee
1 zhang 笑话 3.00
2 ma 天气 5.00
3 zhang 健康 4.00
4 zhang 交通 6.00
5 ma 彩票 10.00

用下面的SQL语句
SELECT U_name,[笑话] as 笑话,[健康] as 健康,[天气] as 天气 FROM tab_Fee
PIVOT(
SUM(Month_Fee)
FOR SP_Code IN
([笑话],[健康],[天气])
) AS pvt

怎么查询的结果是这样的?
U_name 笑话 健康 天气
ma NULL NULL 5.00
ma NULL NULL NULL
zhang 3.00 NULL NULL
zhang NULL 4.00 NULL
zhang NULL NULL NULL
...全文
122 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
superhasty 2005-10-21
  • 打赏
  • 举报
回复
to
我的机器上这样写才是正确的:
SELECT
U_name,
isnull(max([笑话]),0.00) as 笑话,
isnull(max([健康]),0.00) as 健康,
isnull(max([天气]),0.00) as 天气
FROM tab_Fee
PIVOT(
SUM(Month_Fee)
FOR SP_Code IN
([笑话],[健康],[天气])
) AS pvt
group by U_name
子陌红尘 2005-10-21
  • 打赏
  • 举报
回复
SELECT
U_name,
isnull(max([笑话]),0.00) as 笑话,
isnull(max([健康]),0.00) as 健康,
isnull(max([天气]),0.00) as 天气
FROM tab_Fee
PIVOT(
SUM(Month_Fee)
FOR SP_Code IN
([笑话],[健康],[天气])
) AS pvt
superhasty 2005-10-21
  • 打赏
  • 举报
回复
我以为应该得到这样的结果:
U_name 笑话 健康 天气
ma .00 .00 5.00
zhang 3.00 4.00 .00

可为什么没有得到呢?

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧