请教怎么写这个存储过程?

windy_wzh 2005-07-28 03:08:52
有两个表:

表一包含这些字段及内容:

公司名称 项目名称 类别 金额 日期 状态
公司一 项目一 1 100 2005-6-1 0
公司一 项目一 2 200 2005-6-1 1
公司一 项目一 3 100 2005-6-1 0
公司一 1 400 2005-6-1 0
公司一 项目二 1 200 2005-5-1 0


表二的字段
公司名称 项目名称 类别一 金额1 类别二 金额2 类别三 金额3 日期 状态


现在要做的工作是:把表一中公司名称、项目名称、日期、状态相同的记录的类别合并,放入表二的同一条记录。

即表二的记录就要变为

公司名称 项目名称 类别一 金额1 类别二 金额2 类别三 金额3 日期 状态
公司一 项目一 1 100 3 200 2005-6-1 0
公司一 项目一 2 200 2005-6-1 1
公司一 1 400 2005-6-1 0
公司一 项目二 1 200 2005-5-1 0

请问用存储过程应该怎么做比较好?谢谢!
...全文
101 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
windy_wzh 2005-07-29
  • 打赏
  • 举报
回复
phantomMan(全力转向 .net 和 数据库方向) :你在吗,能不能帮帮我
windy_wzh 2005-07-29
  • 打赏
  • 举报
回复
接着上面的问题问,不过这次表的结构改了一下,
表一:
公司名称 项目名称 大类 小类 金额1 金额2 金额3 日期 状态
公司一 项目一 项目 收入 100 200 250 200506 0
公司一 项目一 项目 支出 140 300 200 200506 1
公司一 项目一 项目 收入 100 400 200505 0
公司一 公司 收入 200 400 200506 0
公司一 公司 支出 100 200 200506 0

要做的工作,把表一中公司名称、项目名称、日期相同的记录的项目收入、项目支出、公司收入、公司支出中的金额1,金额2,金额3...合并为一条记录,放入表二中。

表二:

公司名称 项目名称 项目收入1 项目收入2 项目收入3 项目支出1 项目支出2 公司支出1 ..日期
公司一 项目一 100 200 250 140 300 0 .. 200506
公司一 0 0 0 0 0 100 .. 200506

请问这条sql语句怎么写,谢谢!
phantomMan 2005-07-28
  • 打赏
  • 举报
回复
不好说, 可以参考联机帮助里面关于:

group by以及 case when 的用法
windy_wzh 2005-07-28
  • 打赏
  • 举报
回复
这条语句好复杂啊,能不能解释一下
phantomMan 2005-07-28
  • 打赏
  • 举报
回复
select 公司名称,项目名称,
min(case when 类别='1' then 1 else '1' end) 类别一,
sum(case when 类别='1' then 金额 else 0 end) 金额1,
min(case when 类别='2' then 1 else '1' end) 类别二,
sum(case when 类别='2' then 金额 else 0 end) 金额2,
min(case when 类别='3' then 1 else '1' end) 类别三,
sum(case when 类别='3' then 金额 else 0 end) 金额3,
日期,状态
group by 公司名称,项目名称,日期,状态

34,838

社区成员

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

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