我想从数据库中选择一组数据来查找基于其他列值的列的总和,并且还希望连接两个表,这些值在两个日期之间我可以在单个查询中执行它请帮我知道我做了什么到目前为止
envelope.ppm
我正在寻找的是
string sql1 = @"select
Ledger.LedId,
Ledger.LedName,
sum(adjmnt.OpenBalanceAmount) as Totaldebit,
(adjmnt.OpenBalanceVocherType) as adjtype
from
Ledger inner join Adjustment adjust on
Ledger.LedId = adjmnt.LedId
where
Ledger.Date >= @prmStartDate
and Ledger.Date <= @prmEndDate";
但是当我尝试这样做时,我得到了
string sql1 = @"select
Ledger.LedId,
Ledger.LedName,
sum(adjmnt.OpenBalanceAmount) as Totaldebit ,
(adjmnt.OpenBalanceVocherType) as adjtype
from
Ledger inner join Adjustment adjust on
Ledger.LedId= adjmnt.LedId
groupby
(adjmnt.OpenBalanceVocherType)
where
Ledger.Date >= @prmStartDate and
Ledger.Date <= @prmEndDate";
请帮帮我
答案 0 :(得分:2)
您需要将group by
放在where
之后,然后按Ledger.LedId,Ledger.LedName
分组:
string sql1 = @"select Ledger.LedId,Ledger.LedName,sum(adjmnt.OpenBalanceAmount)
Totaldebit ,(adjmnt.OpenBalanceVocherType) as adjtype
from Ledger inner join Adjustment adjmnt on
Ledger.LedId= adjmnt.LedId
where Ledger.Date >= @prmStartDate and Ledger.Date <= @prmEndDate
group by Ledger.LedId,Ledger.LedName";
答案 1 :(得分:1)
我已经为您的问题添加了格式化建议。
当以更有条理的方式查看代码时,您可以立即告知groupby
实际上应该group by
存在错误。
正如Mostafa所提到的,group by
子句应放在where
子句之后。
我不知道这是否能解决您的问题,但肯定是错误的。