Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
Vack
Aged Yak Warrior
530 Posts |
Posted - 2012-07-17 : 13:03:12
|
How can I make this query part of a stored procedure so that I can prompt for month and year?SELECT TOP (100) PERCENT dbo.cicmpy.SalesPersonNumber, dbo.arslmfil_SQL.slspsn_name, dbo.oehdrhst_sql.cus_no, SUM(dbo.oehdrhst_sql.tot_sls_amt) AS TotalSales, SUM(dbo.oehdrhst_sql.tot_cost) AS TotalCostFROM dbo.arslmfil_SQL INNER JOIN dbo.cicmpy ON dbo.arslmfil_SQL.humres_id = dbo.cicmpy.SalesPersonNumber RIGHT OUTER JOIN dbo.oehdrhst_sql ON dbo.cicmpy.debcode = dbo.oehdrhst_sql.cus_noWHERE (YEAR(dbo.oehdrhst_sql.inv_dt) = 2012) AND (MONTH(dbo.oehdrhst_sql.inv_dt) = 6)GROUP BY dbo.oehdrhst_sql.slspsn_no, dbo.oehdrhst_sql.cus_no, dbo.arslmfil_SQL.slspsn_name, dbo.cicmpy.SalesPersonNumberORDER BY dbo.cicmpy.SalesPersonNumber |
|
|
nigelrivett
Master Smack Fu Yak Hacker
3385 Posts |
Posted - 2012-07-17 : 13:17:01
|
| create prod myproc@year int ,@month intasSELECT TOP (100) PERCENT dbo.cicmpy.SalesPersonNumber, dbo.arslmfil_SQL.slspsn_name, dbo.oehdrhst_sql.cus_no, SUM(dbo.oehdrhst_sql.tot_sls_amt) AS TotalSales, SUM(dbo.oehdrhst_sql.tot_cost) AS TotalCostFROM dbo.arslmfil_SQL INNER JOIN dbo.cicmpy ON dbo.arslmfil_SQL.humres_id = dbo.cicmpy.SalesPersonNumber RIGHT OUTER JOIN dbo.oehdrhst_sql ON dbo.cicmpy.debcode = dbo.oehdrhst_sql.cus_noWHERE (YEAR(dbo.oehdrhst_sql.inv_dt) = @year) AND (MONTH(dbo.oehdrhst_sql.inv_dt) = @month)GROUP BY dbo.oehdrhst_sql.slspsn_no, dbo.oehdrhst_sql.cus_no, dbo.arslmfil_SQL.slspsn_name, dbo.cicmpy.SalesPersonNumberORDER BY dbo.cicmpy.SalesPersonNumbergoThe prompting will be done by your client before the SP call.==========================================Cursors are useful if you don't know sql.SSIS can be used in a similar way.Beer is not cold and it isn't fizzy. |
 |
|
|
tkizer
Almighty SQL Goddess
38200 Posts |
Posted - 2012-07-17 : 13:18:24
|
| create proc procName(@date datetime) --pass in the first day of the month/year hereasSELECT TOP (100) PERCENT dbo.cicmpy.SalesPersonNumber, dbo.arslmfil_SQL.slspsn_name, dbo.oehdrhst_sql.cus_no, SUM(dbo.oehdrhst_sql.tot_sls_amt) AS TotalSales, SUM(dbo.oehdrhst_sql.tot_cost) AS TotalCostFROM dbo.arslmfil_SQL INNER JOIN dbo.cicmpy ON dbo.arslmfil_SQL.humres_id = dbo.cicmpy.SalesPersonNumber RIGHT OUTER JOIN dbo.oehdrhst_sql ON dbo.cicmpy.debcode = dbo.oehdrhst_sql.cus_noWHERE oehdrhst_sql.inv_dt >= @date AND oehdrhst_sql.inv_dt < DATEADD(mm, 1, @date)--WHERE (YEAR(dbo.oehdrhst_sql.inv_dt) = 2012) AND (MONTH(dbo.oehdrhst_sql.inv_dt) = 6)GROUP BY dbo.oehdrhst_sql.slspsn_no, dbo.oehdrhst_sql.cus_no, dbo.arslmfil_SQL.slspsn_name, dbo.cicmpy.SalesPersonNumberORDER BY dbo.cicmpy.SalesPersonNumberTara KizerMicrosoft MVP for Windows Server System - SQL Serverhttp://weblogs.sqlteam.com/tarad/Subscribe to my blog |
 |
|
|
tkizer
Almighty SQL Goddess
38200 Posts |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2012-07-17 : 14:53:26
|
even if @month and @year are parameters you can do like this.....WHERE dbo.oehdrhst_sql.inv_dt >= DATEADD(mm,@month-1,DATEADD(yy,@year-1900,0))AND dbo.oehdrhst_sql.inv_dt < DATEADD(mm,@month,DATEADD(yy,@year-1900,0))... ------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
 |
|
|
tkizer
Almighty SQL Goddess
38200 Posts |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
|
|
|
|
|
|
|