select dbo.customers.name, dbo.items.name itemname, convert(varchar, dbo.orderdeliverydetail.createdon, 1) [mm/dd/yy], sum(dbo.orderdeliverydetail.deliveredquantity) deliveredquantity dbo.orderdeliverydetail inner join dbo.customers on dbo.orderdeliverydetail.businessunitid = dbo.customers.businessunitid inner join dbo.items on dbo.orderdeliverydetail.businessunitid = dbo.items.businessunitid , dbo.orderdeliverydetail.itemid = dbo.items.itemid group dbo.customers.name, dbo.items.name, dbo.orderdeliverydetail.createdon i write query record sum of deliveredquantity on base of date. sql return me data need not returning me sum of deliveredquantity
you need aggregate date:
select c.name, i.name itemname, convert(varchar(10), od.createdon, 1) [mm/dd/yy], sum(od.deliveredquantity) deliveredquantity dbo.orderdeliverydetail od inner join dbo.customers c on od.businessunitid = c.businessunitid inner join dbo.items on od.businessunitid = i.businessunitid , od.itemid = i.itemid group c.name, i.name, convert(varchar(10), od.createdon, 1); -------------------------^ presumably, createdon has time component, result in multiple rows each date.
also notice how query easier understand and write because of use of table aliases. and, never use varchar() without length in sql server. default length varies context, , should explicit prevent future errors.
Comments
Post a Comment