sql server - Sql Join Query to Get record on date bases with sum of OrderDelivery -


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