求一个视图写法

superauu 2006-08-18 02:12:08
现有2个表
表一:
费用分类表
ID 项目名称

表二:
月销售费用一览表
年 月 ID 金额


这么做是为了可以灵活的设置费用项。
现在想要查询出一张总表:

年,月,项目名1,项目名2....
2006,7,100,200

不知道怎么写sql语句了,大家帮帮忙。

这个问题刚才有朋友给了解决办法,不过只能创建存储过程,我想要创建一个视图,不知道怎么弄。
Declare @sql varchar(8000)
set @sql='select 年,月 '
select @sql=@sql+',max(case [id] when'''+[id]+''' then 金额 else NULL end)['+项目名称+']'
from (select distinct [id],项目名称 from 费用分类表) as a
select @sql=@sql+'from 月销售费用一览表 group by 年,月'
exec(@sql)
...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyxfly 2006-08-18
  • 打赏
  • 举报
回复
楼上的方法可以,要直接点就冒牌说的,呵呵
OracleRoob 2006-08-18
  • 打赏
  • 举报
回复
用存储过程实现。

调用时,将返回结果存储在临时表中。
superauu 2006-08-18
  • 打赏
  • 举报
回复
那完了,动态的。。。
OracleRoob 2006-08-18
  • 打赏
  • 举报
回复
按楼主说的,要用动态SQL,无法创建视图。

MicrosoftSQL 2006-08-18
  • 打赏
  • 举报
回复
如果项目名1,项目名2....是固定的就可以用case when写视图,否则……

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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