数据库中table1表形式如下:
________________________________
地址 日期 数值
a 2009-2-1 1000
b 2009-2-1 2000
a 2009-2-2 140
b 2009-3-1 144
---------------------------------
合成新表table2的说明:
合并地址,数据1为地址a的数据,数据2为地址b的数据
日期相同的合一行 所求table2表形式如下
____________________________________________
日期 地址a数值 地址b数值
2009-2-1 1000 2000
2009-2-2 140
2009-3-1 144
-------------------------------------------- 用SQL语句和DATASET操作都可以
我的想法是
1、用SQL先取出相同日期值合并
2、用SQL取取出不同日期值合并
但不知怎么实现,请帮写下代码 送积分
________________________________
地址 日期 数值
a 2009-2-1 1000
b 2009-2-1 2000
a 2009-2-2 140
b 2009-3-1 144
---------------------------------
合成新表table2的说明:
合并地址,数据1为地址a的数据,数据2为地址b的数据
日期相同的合一行 所求table2表形式如下
____________________________________________
日期 地址a数值 地址b数值
2009-2-1 1000 2000
2009-2-2 140
2009-3-1 144
-------------------------------------------- 用SQL语句和DATASET操作都可以
我的想法是
1、用SQL先取出相同日期值合并
2、用SQL取取出不同日期值合并
但不知怎么实现,请帮写下代码 送积分
日期,
SUM(CASE 地址 WHEN 'a' THEN 数值 ELSE 0 END) AS 地址a数值,
SUM(CASE 地址 WHEN 'b' THEN 数值 ELSE 0 END) AS 地址b数值
FROM table1
GROUP BY 日期
insert into #tb
select 'a','2009-2-1','1000'
union all select 'b','2009-2-1','2000'
union all select 'a','2009-2-2','140'
union all select 'b','2009-3-1','144' select * from #tbselect convert(varchar(10),dt,120) as dt,max(case when addr='a' then num else null end) a_addr,
max(case when addr='b' then num else null end) b_addr
from #tb
group by convert(varchar(10),dt,120)结果:
---------------------------
2009-02-01 1000 2000
2009-02-02 140 NULL
2009-03-01 NULL 144
Transform SUM(数值)
SELECT 日期
FROM table1
GROUP BY 日期
PIVOT 地址