下面是我的sql查询,我已经把一些MAX(table_name),因为当使用group by时,我不能只放表名。如果我放了MAX,当有varchar值时需要一些时间来执行,请为varchar而不是MAX给出合适的聚合函数。复杂的分组查询
此外,那些MAX(table_name)都是相同的值,没有不同,我只需要打印它。
select distinct
t1.PartyName as Customer_Name,
SUM(t2.Amount) as Bill_Amount,
MAX(t2.VoucherNumber) as Invoice_Number,
SUM(i.Weight * t2.Aqty) as Weight,
CEILING(SUM(i.CBM * (t2.Aqty/c.Nos))) as CBM,
MAX(p.Channel) as Type,
MAX(p.RouteNo) as RouteNo,
MAX(t1.Adress3) as City
from
Item i,
Party p,
Tran1 t1,
VTran2 t2,
Cases c
Where
t1.VoucherNumber=t2.VoucherNumber and
t2.ItemName=i.Itemname and
p.PartyName=t1.PartyName and
t2.ItemName=c.ItemName and
p.RouteNo='" + routeNo1comboBox.Text + "' and
t1.LoadingStatus IS NULL and
t1.Date BETWEEN '" + startDate + "' and '" + endDate + "'
GROUP BY t1.PartyName
您的'连接'条件可能是错误的。修复您的查询以使用propoer'join'语法,并且这可能会解决您的问题。 – 2014-12-03 12:32:34
如果'table_name'对于所有记录都是相同的,那么为什么你需要对它执行一个聚合函数,只需将它包含在'SELECT'列表中即可。 – 2014-12-03 12:35:12
嗨,戈登,感谢您的回复,您能否以我的加入示例为我提供小修改?之后,我可以轻松地赶上。 – Safa 2014-12-03 12:35:59