select 写你的字段
from
(
)a
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
from
(
)a
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
解决方案 »
- 请问如何在pub数据库下写查询语句?在哪写?
- 在关键字 'left' 附近有语法错误。
- 很简单的触发器问题,程序保存数据时提示错误,数据不能存储,大家帮忙看看
- 如何每隔一个星期自动清空日志
- SQL数据库删除如何恢复?急死我了!
- 【求助】求一条SQL语句,多记录拼成一条
- 求尽量不用游标解决问题的办法
- 请问“结构化查询语言”中的结构化是什么意思,最好打个比方,谢谢!
- 请教前端用ADO stream 如何操作image 字段?
- INNER JOIN遇上null的问题
- 一个table1表里有两个字段a,b,我想用group by子句得到下面一个二维统计结果,怎么写啊?
- 超难(对小弟来说)关于group by的sql,各位大哥怎么写啊?!help!
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,sum(kcsw_rksl)-sum(kcsw_cksl) as sqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as sqjcdw, 0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqrkdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <'20041219' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj,0 as sqjcsl,0 as sqjcdw,sum(kcsw_rksl) as bqrksl,sum(kcsw_rkdw) as bqrkdw ,sum(kcsw_cksl) as bqcksl,sum(kcsw_ckdw) as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq between '20041220' and '20041220'
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,0 as sqjcsl,0 as sqjcdw,0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw ,sum(kcsw_rksl)-sum(kcsw_cksl) as bqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <='20041220' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
) a group by group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
(
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj from t1
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj from t2
)a
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
(select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,sum(kcsw_rksl)-sum(kcsw_cksl) as sqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as sqjcdw, 0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqrkdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <'20041219' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj) a
union all
select * from
(select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj,0 as sqjcsl,0 as sqjcdw,sum(kcsw_rksl) as bqrksl,sum(kcsw_rkdw) as bqrkdw ,sum(kcsw_cksl) as bqcksl,sum(kcsw_ckdw) as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq between '20041220' and '20041220'
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj) b
union all
select * from
(select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,0 as sqjcsl,0 as sqjcdw,0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw ,sum(kcsw_rksl)-sum(kcsw_cksl) as bqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <='20041220' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj) c
(select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,sum(kcsw_rksl)-sum(kcsw_cksl) as sqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as sqjcdw, 0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqrkdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <'20041219' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj) a
union all
select * from
(select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj,0 as sqjcsl,0 as sqjcdw,sum(kcsw_rksl) as bqrksl,sum(kcsw_rkdw) as bqrkdw ,sum(kcsw_cksl) as bqcksl,sum(kcsw_ckdw) as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq between '20041220' and '20041220'
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj) b
union all
select * from
(select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,0 as sqjcsl,0 as sqjcdw,0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw ,sum(kcsw_rksl)-sum(kcsw_cksl) as bqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <='20041220' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj) c
(select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,sum(kcsw_rksl)-sum(kcsw_cksl) as sqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as sqjcdw, 0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqrkdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <'20041219' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj,0 as sqjcsl,0 as sqjcdw,sum(kcsw_rksl) as bqrksl,sum(kcsw_rkdw) as bqrkdw ,sum(kcsw_cksl) as bqcksl,sum(kcsw_ckdw) as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq between '20041220' and '20041220'
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,0 as sqjcsl,0 as sqjcdw,0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw ,sum(kcsw_rksl)-sum(kcsw_cksl) as bqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <='20041220' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
)A
group by wl_wlid ,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
Server: Msg 8156, Level 16, State 1, Line 1
The column 'bqrkdw' was specified multiple times for 'A'.
跟楼上基本一致
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
sum(..),max(..),..
from
(
你原由的sql语句
)a
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,sum(kcsw_rksl)-sum(kcsw_cksl) as sqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as sqjcdw, 0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <'20041219' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj,0 as sqjcsl,0 as sqjcdw,sum(kcsw_rksl) as bqrksl,sum(kcsw_rkdw) as bqrkdw ,sum(kcsw_cksl) as bqcksl,sum(kcsw_ckdw) as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq between '20041220' and '20041220'
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,0 as sqjcsl,0 as sqjcdw,0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw ,sum(kcsw_rksl)-sum(kcsw_cksl) as bqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <='20041220' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
写成:
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj,sqjcsl,sqjcdw,bqrksl,bqrkdw,bqcksl,bqckdw,bqjcsl,bqjcdw from
(
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,sum(kcsw_rksl)-sum(kcsw_cksl) as sqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as sqjcdw, 0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <'20041219' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj,0 as sqjcsl,0 as sqjcdw,sum(kcsw_rksl) as bqrksl,sum(kcsw_rkdw) as bqrkdw ,sum(kcsw_cksl) as bqcksl,sum(kcsw_ckdw) as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq between '20041220' and '20041220'
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,0 as sqjcsl,0 as sqjcdw,0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw ,sum(kcsw_rksl)-sum(kcsw_cksl) as bqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <='20041220' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
) a
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
Server: Msg 8120, Level 16, State 1, Line 1
Column 'a.sqjcsl' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Server: Msg 8120, Level 16, State 1, Line 1
Column 'a.sqjcdw' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Server: Msg 8120, Level 16, State 1, Line 1
Column 'a.bqrksl' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Server: Msg 8120, Level 16, State 1, Line 1
Column 'a.bqrkdw' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Server: Msg 8120, Level 16, State 1, Line 1
Column 'a.bqcksl' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Server: Msg 8120, Level 16, State 1, Line 1
Column 'a.bqckdw' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Server: Msg 8120, Level 16, State 1, Line 1
Column 'a.bqjcsl' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Server: Msg 8120, Level 16, State 1, Line 1
Column 'a.bqjcdw' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
The column 'bqrkdw' was specified multiple times for 'A'.
===
你这个字段出现多次吗?类似:
create table tb1(a int,b varchar(2))
insert into tb1
select 10,'01' union all
select 20, '01' union all
select 30,'02'
create table tb2 (a int,b varchar(2))
insert into tb2
select 40,'01' union all
select 50, '02' union all
select 60 ,'03'select a=sum(a),b from (
select a,b from tb1
union all
select a,b from tb2)a
group by b
drop table tb1,tb2===
a b
----------- ----
70 01
80 02
60 03
如楼上:
wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj 进行分组,那么你select字段中除了这些字段外的其他字段必须要写在聚合函数中的。
正确的原文应该是:select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,sum(kcsw_rksl)-sum(kcsw_cksl) as sqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as sqjcdw, 0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <'20041219' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj,0 as sqjcsl,0 as sqjcdw,sum(kcsw_rksl) as bqrksl,sum(kcsw_rkdw) as bqrkdw ,sum(kcsw_cksl) as bqcksl,sum(kcsw_ckdw) as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq between '20041220' and '20041220'
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,0 as sqjcsl,0 as sqjcdw,0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw ,sum(kcsw_rksl)-sum(kcsw_cksl) as bqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <='20041220' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
这样写是否正确了?
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj,sum(sqjcsl),sum(sqjcdw),sum(bqrksl),sum(bqrkdw),sum(bqcksl),
sum(bqckdw),sum(bqjcsl),sum(bqjcdw) from
(
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,sum(kcsw_rksl)-sum(kcsw_cksl) as sqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as sqjcdw, 0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <'20041219' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj,0 as sqjcsl,0 as sqjcdw,sum(kcsw_rksl) as bqrksl,sum(kcsw_rkdw) as bqrkdw ,sum(kcsw_cksl) as bqcksl,sum(kcsw_ckdw) as bqckdw,0 as bqjcsl,0 as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq between '20041220' and '20041220'
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
union all
select wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj ,0 as sqjcsl,0 as sqjcdw,0 as bqrksl,0 as bqrkdw,0 as bqcksl,0 as bqckdw ,sum(kcsw_rksl)-sum(kcsw_cksl) as bqjcsl ,sum(kcsw_rkdw)-sum(kcsw_rkdw) as bqjcdw
from kcsw ,wl where kcsw_wlid=wl_wlid and kcsw_jzrq <='20041220' group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj
) a
group by wl_wlid,kcsw_ph,wl_mc,wl_gg,wl_cz,wl_dj