读书人

一个简单的数据库查询有关问题

发布时间: 2012-09-20 09:36:50 作者: rapoo

一个简单的数据库查询问题。
a表:pillid(外键),num,
b表:pillid(主键),name,Factory,Mark,PillImage...

现在的问题是统计a表的num并显示pillid的所有信息(b表);

模拟SQL语句是:
select sum(a.num),b.*
from a left join b on a.pillid=b.pillid
group by a.pillid
但是这个group by连接查询肯定报错,只是为了说明逻辑。求助。

[解决办法]
select sum(a.num),b.*
from a left join b on a.pillid=b.pillid
group by (B的字段)
[解决办法]
逻辑:先统计a表的num,再关联b表的相关字段。
select aa.pillid,aa.num,b.*
from(
select pillid,sum(num) num
from a
group by pillid
)aa
left join b on aa.pillid=b.pillid

[解决办法]

SQL code
select sum(a.num),b.*  from a left join b on a.pillid=b.pillid  group by b表所有字段-->这是group by 的规则,你可以把a.pillid放在第一位
[解决办法]
select 语句的顺序是先group by 再select的,所以在select中,非sum/avg/max/min/count的条件,都要首先出现在group by中。

读书人网 >SQL Server

热点推荐