【发布时间】:2014-02-03 06:50:41
【问题描述】:
我是sql新手,我有一个疑问
select t1.PayeeCode,t1.PayeeName,t1.PayeeIFSCCode,t1.grossAmount as ga,t2.Deduction
as da,(t1.grossAmount-t2.Deduction) as SubAmount from (
(select PayeeCode,PayeeName,PayeeIFSCCode,PayeeBankAcNo,sum(PayeeAmount) as
grossAmount from tblPayees where AccountType='g' group by payeeCode, PayeeName,PayeeIFSCCode,PayeeBankAcNo) t1
inner join
(select PayeeCode,sum(PayeeAmount) as deduction from tblPayees where
AccountType='d' group by payeeCode) t2
on t1.PayeeCode=t2.PayeeCode
)
目前的结果
PayeeCode payeename payeeifsccode ga da subamount type -------------------------------------------------- ------------ p1 x 123 1300 1400 100 克 p1 z 34 450 550 100 克 p1 y 35 150 150 0 天 p2 z 45 150 100 50 天预期结果:
PayeeCode payeename payeeifsccode ga da subamount type -------------------------------------------------- ------------ p1 x 123 1750 1950 200 克 p1 y 35 300 250 50 天这里的“tblPayees.PayeeName”列在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
我知道为什么会发生错误,但是,我不想按 payeeName 分组,我只需要 payeecode。如何做到这一点? 请帮帮我
【问题讨论】:
-
在 group by payeeCode 中应该大写为-- group by PayeeCode 吗?在两个 group by 子句中?
-
按条款分组
-
按PayeeCode分组为大写也没有问题
-
@sandeep 按原样发布示例数据,而不是查询结果。
-
数据库结构你知道吗?
标签: sql-server group-by