这个SQL怎样写???急!!!(100分)

  • 主题发起人 主题发起人 yippee
  • 开始时间 开始时间
Y

yippee

Unregistered / Unconfirmed
GUEST, unregistred user!
有两个表:表一:灌区,水库,时间,流量
a 1 1999 32
b 2 1999 10
c 3 1999 7
表二:灌区,水库,时间,流量
a 111 1999 5
a 112 1999 2.1
b 111 1999 1.5
b 112 1999 2.5
c 111 1999 3.0
d 111 1999 4.5
d 112 1999 2
灌区有相同的,也有不同的,
水库表一的和表二的完全不同,但表内可以重复
需要得到表三如下:
灌区 时间 流量合计
a 1999 32+5+2.1
b 1999 10+1.5+2.5

c 1999 ...
d 1999 ....
请问应该怎样实现??
 
如果是后台数据库可以这么写:
Select 灌区,时间,sum(流量) as 流量 from
(Select 灌区,时间,sum(流量) as 流量 from 表一 group by 灌区,时间
union
Select 灌区,时间,sum(流量) as 流量 from 表二 group by 灌区,时间) as
AAAAA group by 灌区,时间 order by 灌区,时间
上面的AAAAA随你怎么写都没关系只要不和数据系统的系统名冲突就行。
 
在请教:
系统提示:
Incorrect syntax near the keyword 'GROUP'.
请继续指教
 
接受答案了.
 
很不错哦!
 
不同意balaschen,因为UNION自动去掉了重复记录,这与初衷不符。建议建立一个中间表来做,
(灌区,时间,总流量),然后insert into newtable
select 灌区,时间,sum(流量) group by 灌区,流量 from 表一
insert into newtable
select 灌区,时间,sum(流量) group by 灌区,流量 from 表二
再对newtable进行GROUP BY 即可!要一次用SQL完成,我还没想好。
 
To boby_w:在Union时只要加了All参数在显示合并数据时重复数据会显示出来,不信你试试
 
>>Incorrect syntax near the keyword 'GROUP':没见过这种错误啊!你是用什么数据库?
上面的句子只要加上All即可,如下:
Select 灌区,时间,sum(流量) as 流量 from
(Select 灌区,时间,sum(流量) as 流量 from 表一 group by 灌区,时间
union All
Select 灌区,时间,sum(流量) as 流量 from 表二 group by 灌区,时间) as
AAAAA group by 灌区,时间 order by 灌区,时间
 
后退
顶部