这样的SQL语句怎么写.... 在线等待...

warren04 2003-10-16 10:38:16
表table如下:
No. columnName oldValue newValue
1 aa 123 124
1 bb test testing
1 cc auto hand
1 dd 12*34 13*34
2 bb testing tests
2 aa 124 987
3 cc hand auto-hand
3 ee new new-12
4 dd 13*34 55*66
4 ff 0123 0129
要得到的查询结果如下:
No. aa bb cc dd ee ff
0 123 test auto 12*34 new 0123
1 124 testing hand 13*34
2 987 tests
3 auto-hand new-12
4 55*66 0129

大家帮我看看,thanks.
...全文
97 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
warren04 2003-10-17
  • 打赏
  • 举报
回复
自己搞定,结贴.
verybigmouthz 2003-10-17
  • 打赏
  • 举报
回复
粘错了

画蛇添足吧!
1/求出所有columnname所对应的初始值 即no = 0的列
create view v_no_min_tmp as
select columnName,min(No) as No
from table_1
group by columnName
;

create view v_no_min as
select a.columnName columnName, a.oldValue as value, b.NO as NO
from table_1 a, v_no_min_tmp b
where a.columnName = b.columnName and a.No = b.NO
;

楼主不妨将搞定的语句写出来看看
verybigmouthz 2003-10-17
  • 打赏
  • 举报
回复
画蛇添足吧!
1/求出所有columnname所对应的初始值 即no = 0的列
create view v_no_min_tmp as
select columnName,oldValue as value,min(No) as No
from table_1
group by columnName
;

create view v_no_min as
select a.columnName columnName, a.oldValue as value, b.NO as NO
from table_1 a, v_no_min_tmp b
where a.columnName = b.columnName and a.No = b.NO
;
verybigmouthz 2003-10-16
  • 打赏
  • 举报
回复
1/求出所有columnname所对应的初始值 即no = 0的列
create view v_no_min as
select columnName,oldValue as value,min(No) as No
from table_1
group by columnName
;

2/求出以下各行oldValue的值
create view v_no_oldValue_other as

select columnName, oldValue as value, No
from table_1

minus

select columnName, value, No
from v_no_min
;

3/求出各行newValue的值
create view v_no_newValue as
select columnName, newValue as value, No
from table_1
;

4/合并各值
create view v_no_value_all as
select columnName, value, 0 as No
from v_no_min

union

select columnName, value, No
from v_no_oldValue_other

union

select columnName, value, No
from v_no_newValue
;

5/展示结果
select No, columnName, value
from v_no_value_all
;

依据以上视图v_no_value_all再作交叉表即可
warren04 2003-10-16
  • 打赏
  • 举报
回复
第一行的数据实现不了,以下的还可以.
伍子V5 2003-10-16
  • 打赏
  • 举报
回复
交叉表问题,在搜索里面艘一下吧,多得是
warren04 2003-10-16
  • 打赏
  • 举报
回复
结果的第一行(即No.=0) 的表中是对应columnName第一次出现的oldValue
以后的都是newValue的值
txlicenhe 2003-10-16
  • 打赏
  • 举报
回复
暂未看懂
warren04 2003-10-16
  • 打赏
  • 举报
回复
等待中....
warren04 2003-10-16
  • 打赏
  • 举报
回复
楼上,谢谢你了。不过好像还是不行.

34,575

社区成员

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

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