SQL求助----分组查询语句遇到的问题

[复制链接]
查看11 | 回复4 | 2014-3-22 06:00:12 | 显示全部楼层 |阅读模式
本帖最后由 skxs520 于 2014-3-20 10:23 编辑
做数据汇总遇到的问题...
有两张表A , B
A
字段a1,
字段a2(时间类型),
字段a3,
........

B
字段b1,
字段b2(时间类型),
由于是根据年份进行数据汇总,需要将B中与A中年份相等的记录条数查询出来,
所以代码中我的SQL语句是这样写的:
SELECT extract(YEAR FROM a2),
(SELECT count(*) FROM B
WHERE to_char(b2,'yyyy')=to_char(extract(YEAR FROM a2))
),
sum(a3)
FROM AGROUP BY extract(YEAR FROM a2)

但是总是报语法错误:不是group by 表达式, 所以在这里想问问各位老前辈如果想达到我想要的那种结果,语句应该怎么写........

我也知道group by的语法格式,但是同样的这条语句,我在本地查询和在服务器上查询,结果是不一样的,本地没报错,查询正确,服务器上报错,我猜可能是驱动版本的问题,所以这个我暂时就先不考虑了,就想着如何能够在服务器上正确查询出来....


回复

使用道具 举报

千问 | 2014-3-22 06:00:12 | 显示全部楼层
select extract(YEAR FROM a2), count(b1), sum(a3) from a, b where extract(YEAR FROM a2) =extract(YEAR FROM b2(+)) group by extract(YEAR FROM a2);
回复

使用道具 举报

千问 | 2014-3-22 06:00:12 | 显示全部楼层
本帖最后由 skxs520 于 2014-3-20 10:52 编辑
阿吉2009 发表于 2014-3-20 10:36
select extract(YEAR FROM a2), count(b1), sum(a3) from a, b where extract(YEAR FROM a2) =extract(YEAR ...

不报错了,但是count(b1)这列有点问题...
数量不太对,是不是那个啥 笛卡尔积了?
回复

使用道具 举报

千问 | 2014-3-22 06:00:12 | 显示全部楼层
select a_year,count_b, sum_a3 from (select extract(YEAR FROM a2) a_year, sum(a3)sum_a3 from a group by extract(YEAR FROM a2)), (select extract(YEAR FROM b2) b_year, count(*)count_b from bgroup by extract(YEAR FROM b2))where a_year=b_year(+) ;
回复

使用道具 举报

千问 | 2014-3-22 06:00:12 | 显示全部楼层
阿吉2009 发表于 2014-3-20 10:59
select a_year,count_b, sum_a3 from (select extract(YEAR FROM a2) a_year, sum(a3)sum_a3 from a g ...

嗯,非常感谢,终于可以了...
唉,要学习的还有很多
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行