把SQL查询出来的某一字段内容变成字段名,且这一字段内容是动态变化的,谢谢大家

zlh74 2002-10-08 03:57:21
有二张表 如下:
一表: 二表:
GH XM 资金 实发 GH 合同号 工种 数量 单价
1 aa 1 sc1 a 30 1.2
2 bb 1 sc2 b 40 1.3
2 sc1 c 50 1.5
2 sc1 a 60 1.8
2 sc2 d 70 1.4

同一合同号存在不同的工种

最后要求格式:GH=1 人
a b c d
合同号 数量 单价 数量 单价 数量 单价 数量 单价
sc1 30 1.2
sc2 40 1.3

gh=2 的人
a b c d
合同号 数量 单价 数量 单价 数量 单价 数量 单价
sc1 60 1.8 50 1.5
sc2 70 1.4

...全文
232 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
奇遇 2002-10-10
  • 打赏
  • 举报
回复
agree with newly_ignorant
SE1 2002-10-10
  • 打赏
  • 举报
回复
可以通过循环,变量之类是不可以的。
不过,可以写一个存储过程,动态生成不学无术的代码并执行。
zlh74 2002-10-10
  • 打赏
  • 举报
回复
不学无术,你的思路是对的,但工种是动态变化的,如果工种很多很多的,这样写是不是太每繁索,有没有可以通过循环,变量之类呢
lyyrw 2002-10-09
  • 打赏
  • 举报
回复
学习!
matboy 2002-10-09
  • 打赏
  • 举报
回复
同意newly_ignorant(不学无术) 的思路
newly_ignorant 2002-10-08
  • 打赏
  • 举报
回复
select 合同号 ,
case when sum(case when 工种='a' then 数量 else 0 end)>0 then sum(case when 工种='a' then 数量 else 0 end) else '' end as '数量',
case when sum(case when 工种='a' then 单价 else 0 end)>0 then sum(case when 工种='a' then 单价 else 0 end) else '' end as '单价',
case when sum(case when 工种='b' then 数量 else 0 end)>0 then sum(case when 工种='b' then 数量 else 0 end) else '' end as '数量',
case when sum(case when 工种='b' then 单价 else 0 end)>0 then sum(case when 工种='b' then 单价 else 0 end) else '' end as '单价',
case when sum(case when 工种='c' then 数量 else 0 end)>0 then sum(case when 工种='c' then 数量 else 0 end) else '' end as '数量',
case when sum(case when 工种='c' then 单价 else 0 end)>0 then sum(case when 工种='c' then 单价 else 0 end) else '' end as '单价',
case when sum(case when 工种='d' then 数量 else 0 end)>0 then sum(case when 工种='d' then 数量 else 0 end) else '' end as '数量',
case when sum(case when 工种='d' then 单价 else 0 end)>0 then sum(case when 工种='d' then 单价 else 0 end) else '' end as '单价'
from table1 a left outer join table2 b on a.gh=b.gh
group by a.gh,合同号
lyyrw 2002-10-08
  • 打赏
  • 举报
回复
数据库access 中有一个交叉表,可以实现,在建查询的时候,就可以建个交叉表,在server中就太麻烦了,至少7.0中没有这种功能,2000中有没有就不太清楚了。

34,575

社区成员

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

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