sql 语句 两个表 表1,表2 如何做到1个表求和 但是求出来的记录 是按表2 中某个字段为顺序排列的

表2为基础数据表 产品类型 。 表1是加工表

比如:


select t2.productname,sum(t1.数量)
from t1,t2
where t1.productid = t2.productid
group by t2.productname
order by t2.productname

追问

请问 如何改一下t2中的字段有 t1表中记录还没的情况如何显示的是0 不是没有记录

追答

这么写试试看:


select t2.productname,sum(t1.数量)
from t2 left outer join t1
on t1.productid = t2.productid
group by t2.productname
order by t2.productname

追问

顺序还有点问题 不知道为什么 隔开 了一个

追答

具体什么情况,照理说不应该。

追问

是啊

本来车外圆是第二工序的其他都对 

追答

你是要把有数的排在前面?

追问

没 是按表2中基础数据的工序顺序排列 。表2中的工序顺序是上面的顺序 就是8 车外圆 应该在座钻中心孔下面

追答

那你要调整的是

order by 的列吧?

追问

我设置的是 order by 为 表2 中的 工序啊 会不会是编号

追答

嗯,你仔细看看,

或者直接用

select * from t2
order by 你的列名

看看排序的顺序

追问

嗯 ,在请教一个 如果 在加个条件 放那里

追答

看你是什么条件:


select t2.productname,sum(t1.数量)
from t2 left outer join t1
on t1.productid = t2.productid
   and ...                                     --  对连接的结果起作用
where ...                                     -- 对整个返回的行起作用
group by t2.productname
order by t2.productname

追问

T2中还有字段是个生产线 我刚举例 一条工序的 加个条件是 想把某个生产线的工序调出来

追答

就是我给你的两个地方,作用不同。

既然是t2的列,放在where 中。

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答