sql 分组求和问题。跪求指教。 送300分 ( 积分: 300 )

  • 主题发起人 主题发起人 sharpwing
  • 开始时间 开始时间
S

sharpwing

Unregistered / Unconfirmed
GUEST, unregistred user!
SELECT [brown]'类型'[/brown]=case when t.fnumber < '01.02' then '脚力'
when t.fnumber between '01.02' and '01.03' then '梯子'
when t.fnumber between '01.03.CSB0' and '01.03.CSBZ' then 'CSB'
when t.fnumber between '01.03.VSS0' and '01.03.VSSZ' then 'VSS'
when t.fnumber between '01.03.CSR0' and '01.03.CSRZ' then 'CSR'
else 'other' end,
t.FNumber AS 物料代码, t.FName AS 物料名称,
SUM(CASE day(s.fadviceconsigndate) WHEN '01' THEN s.fauxqty ELSE 0 END)
AS '1',
*********
SUM(CASE day(s.fadviceconsigndate) WHEN '31' THEN s.fauxqty ELSE 0 END)
AS '31',sum(s.fauxqty) as 合计
FROM dbo.SEOrderEntry s INNER JOIN
dbo.SEOrder so ON s.FInterID = so.FInterID INNER JOIN
dbo.t_ICItem t ON s.FItemID = t.FItemID
WHERE (MONTH(s.FAdviceConsignDate) =3) AND (YEAR(s.FAdviceConsignDate) = 2007)
GROUP BY t.FNumber, t.FName
ORDER BY t.FNumber, t.FName
中怎么样根据“类型”对s.faunqty分组求和。谢谢。答题有分。
 
分开说,先把结果放到一张临时表,再对这个张表时行分组求和,
用了CASE好象再做内部分组了
 
s.faunqty? s.fauxqty吧,再套一层SQL查询就可以啦,当然语句可以优化一下
 
很爽的方法:有fastreport在报表中直接对你的原始数据作分类汇总
 
sql 中有compute by,去看看帮助;
技术问题可以问;
算法问题尽量自己去想.
good luck
 
后退
顶部