首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

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

一个简单的数据库查询问题。
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中。

热点排行