求一SQL查询语句

DWR_1469 2008-08-21 09:58:13
product表

name price address
pro1 200 beijing
pro2 100 wuhan
pro3 300 tianjing

pro1 100 wuhan
pro2 300 tianjing
pro3 200 beijing

pro1 400 tianjing
pro3 200 wuhan

查询结果

name beijing.price wuhan.price tianjing.price ...
pro1 200 100 400 ...
pro2 null 100 300 ...
pro3 200 200 300 ...
...全文
144 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dbcxbj 2008-08-22
  • 打赏
  • 举报
回复
如果数据少的话用一楼的.
数据多用存储过程拼sql.
binyun530 2008-08-21
  • 打赏
  • 举报
回复
这是SQL SERVER的代码,应该差不多,

Select Name,Sum(beijing) as beijing,Sum(wuhan) as wuhan,Sum(tianjing)as tianjing
From
(
Select name,
Case address when 'beijing' then price end as beijing,
Case address when 'wuhan' then price end as wuhan,
Case address when 'tianjing' then price end as tianjing
from test1
)B Group by name

Name beijing wuhan tianjing
-------------------- ----------- ----------- -----------
pro1 200 100 400
pro2 NULL 100 300
pro3 200 200 300

(所影响的行数为 3 行)
mantisXF 2008-08-21
  • 打赏
  • 举报
回复
又见 行变列 ..
oracledbalgtu 2008-08-21
  • 打赏
  • 举报
回复

有多少个城市就加多少个类似的SUM(DECODE(ADDRESS, 'beijing', PRICE)) BEIJING;
SELECT NAME,
SUM(DECODE(ADDRESS, 'beijing', PRICE)) BEIJING,
SUM(DECODE(ADDRESS, 'wuhan', PRICE)) WUHAN,
SUM(DECODE(ADDRESS, 'tianjing', PRICE)) TIANJING
FROM PRODUCT
GROUP BY NAME;

[Quote=引用楼主 DWR_1469 的帖子:]
product表

name price address
pro1 200 beijing
pro2 100 wuhan
pro3 300 tianjing

pro1 100 wuhan
pro2 300 tianjing
pro3 200 beijing

pro1 400 tianjing
pro3 …
[/Quote]

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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