jnordeng
asked on
DataTable average by month
I have data from the following query loaded in a datatable. Now I need to average sales by each month for each item grouped by warehouse in my vb.net windows application. Date format for the info is e.g. 6/22/2011 12:00:00 AM.
SELECT Tech.dbo.CHISM_oemain.Whse ID, Tech.dbo.CHISM_oemain.Ente redDate,Te ch.dbo.Chi sm_oeline. TicketId, Tech.dbo.Chism_oeline.Prod uctId, Tech.dbo.Chism_oeline.Unit sOrdered FROM Tech.dbo.CHISM_oemain INNER JOIN Tech.dbo.Chism_oeline ON Tech.dbo.CHISM_oemain.Tick etid=Tech. dbo.Chism_ oeline.Tic ketId WHERE Tech.dbo.CHISM_oemain.Ente redDate >= '10/27/2008' ORDER BY Tech.dbo.CHISM_oemain.Whse Id, Tech.dbo.Chism_oeline.Prod uctId"
Information gathered will be loaded into this table
dtc.Columns.Add("WhseID")
dtc.Columns.Add("ProductID ")
dtc.Columns.Add("MonthName ")
dtc.Columns.Add("AvgQty")
Thanks so much for your help.
SELECT Tech.dbo.CHISM_oemain.Whse
Information gathered will be loaded into this table
dtc.Columns.Add("WhseID")
dtc.Columns.Add("ProductID
dtc.Columns.Add("MonthName
dtc.Columns.Add("AvgQty")
Thanks so much for your help.
ASKER
Good morning: Avenger. The column that is average is that suppose to be the qty sold that month in the query? Then I should do an average offline in vb and figure my month name in vb? My output and query as follows.....
SELECT Tech.dbo.CHISM_oemain.Whse ID, Tech.dbo.Chism_oeline.Prod uctId, YEAR(Tech.dbo.CHISM_oemain .EnteredDa te) as [YEAR], MONTH(Tech.dbo.CHISM_oemai n.EnteredD ate) as [MONTH], AVG(Tech.dbo.Chism_oeline. UnitsOrder ed) as [AVERAGE]FROM Tech.dbo.CHISM_oemain INNER JOIN Tech.dbo.Chism_oeline ON Tech.dbo.CHISM_oemain.Tick etid=Tech. dbo.Chism_ oeline.Tic ketId
WHERE Tech.dbo.CHISM_oemain.Ente redDate >= '10/27/2008'
GROUP BY Tech.dbo.CHISM_oemain.Whse ID, Tech.dbo.Chism_oeline.Prod uctId, YEAR(Tech.dbo.CHISM_oemain .EnteredDa te), MONTH(Tech.dbo.CHISM_oemai n.EnteredD ate)
ORDER BY Tech.dbo.CHISM_oemain.Whse Id, Tech.dbo.Chism_oeline.Prod uctId, YEAR(Tech.dbo.CHISM_oemain .EnteredDa te), MONTH(Tech.dbo.CHISM_oemai n.EnteredD ate)
WhseID ProductId YEAR MONTH AVERAGE
1 *104610.00 2010 10 1.000000
1 *104610.00 2010 11 -377.426875
1 *104610.00 2010 12 -8.964000
1 *104610.00 2011 1 -902.938571
1 *104610.00 2011 2 -1.000000
1 *104610.00 2011 4 -1.000000
1 *104610.00 2011 5 -1.000000
1 *104610.00 2011 6 -0.333333
1 *104610.00 2011 7 0.000000
1 *104610.00 2011 8 -0.333333
1 *104610.00 2011 9 -4189.307142
1 *104610.00 2011 10 -1.000000
1 *104617.00 2011 3 -1.000000
1 *104617.00 2011 4 -1.000000
1 *104617.00 2011 5 -1.000000
1 *104617.00 2011 6 -1.000000
1 *104617.00 2011 7 -1.000000
1 *107610.00 2010 10 -1.000000
1 *107610.00 2010 11 -126.000000
SELECT Tech.dbo.CHISM_oemain.Whse
WHERE Tech.dbo.CHISM_oemain.Ente
GROUP BY Tech.dbo.CHISM_oemain.Whse
ORDER BY Tech.dbo.CHISM_oemain.Whse
WhseID ProductId YEAR MONTH AVERAGE
1 *104610.00 2010 10 1.000000
1 *104610.00 2010 11 -377.426875
1 *104610.00 2010 12 -8.964000
1 *104610.00 2011 1 -902.938571
1 *104610.00 2011 2 -1.000000
1 *104610.00 2011 4 -1.000000
1 *104610.00 2011 5 -1.000000
1 *104610.00 2011 6 -0.333333
1 *104610.00 2011 7 0.000000
1 *104610.00 2011 8 -0.333333
1 *104610.00 2011 9 -4189.307142
1 *104610.00 2011 10 -1.000000
1 *104617.00 2011 3 -1.000000
1 *104617.00 2011 4 -1.000000
1 *104617.00 2011 5 -1.000000
1 *104617.00 2011 6 -1.000000
1 *104617.00 2011 7 -1.000000
1 *107610.00 2010 10 -1.000000
1 *107610.00 2010 11 -126.000000
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Avenger is awesome!
SELECT Tech.dbo.CHISM_oemain.Whse
FROM Tech.dbo.CHISM_oemain INNER JOIN Tech.dbo.Chism_oeline ON Tech.dbo.CHISM_oemain.Tick
WHERE Tech.dbo.CHISM_oemain.Ente
GROUP BY Tech.dbo.CHISM_oemain.Whse
ORDER BY Tech.dbo.CHISM_oemain.Whse
In VB you can then create the real month info by making a new DateTime (year, month, 1) where year and month come from the SQL