有办法实现这样的查询结果集格式转换吗?

Veeve 2003-10-23 04:27:43
有没有办法把下列一行记录
amount_1 label_1 amount_2 label_2 amount_3 label_3
10000 总数 2000 已付 8000 未付

变成如下格式:
amount label
10000 总数
2000 已付
8000 未付

?(不用临时表)
...全文
53 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Veeve 2003-10-23
  • 打赏
  • 举报
回复
简化后的:
SELECT *, a.amount_1 - b.amount_2 AS amount_3, '未付' AS label_3
FROM (
SELECT SUM(amount) AS amount_1, '总数' AS label_1 FROM table_1
) AS a
FULL OUTER JOIN (
SELECT SUM(amount) AS amount_2, '已付' AS label_2 FROM table_2
) AS b ON 1=1
pengdali 2003-10-23
  • 打赏
  • 举报
回复
临时表

你的代码?
Veeve 2003-10-23
  • 打赏
  • 举报
回复
对了,还有个要求,记录
amount_1 label_1 amount_2 label_2 amount_3 label_3
10000 总数 2000 已付 8000 未付
本身也是由一条较复杂的查询得到的,如果用pengdali(大力 V3.0) 的方法这个查询就要写三次,能只写一次就可以吗?
samuelpan 2003-10-23
  • 打赏
  • 举报
回复
select amount_1 amount,label_1 label from 表
union all
select amount_2,label_2 from 表
union all
select amount_3,label_3 from 表
samuelpan 2003-10-23
  • 打赏
  • 举报
回复
select amount_1,label_1
union
select amount_2,label_2
union
union amount_3,label_3
lynx1111 2003-10-23
  • 打赏
  • 举报
回复
select amount_1 amount,label_1 label from 表
union all
select amount_2 amount,label_2 label from 表
union all
select amount_3 amount,label_3 label from 表
lynx1111 2003-10-23
  • 打赏
  • 举报
回复
select sum(case when label='总数' then amount end) aaa,
sum(case when label='已付' then amount end) bbb,
sum(case when label='未付' then amount end) bbb,
from table6
pengdali 2003-10-23
  • 打赏
  • 举报
回复
select amount_1 amount,label_1 label from 表
union all
select amount_2 amount,label_2 label from 表
union all
select amount_3 amount,label_3 label from 表

34,874

社区成员

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

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