How to make dynamic stored procedure that inserts into a table to compare the dates if an item number appear this month but did not appear last month in sql
Posted on 2007-11-30
I want to compare the last month's table to current month's table where if an item number appear this month but it didn't last month then flag as new item. Below is the sql code to where the stored procedure is run once a month and create a copy to history archive. Here are the tables:
History table = dbo.[ExcessInventory12MthReport'+@CopyDate+']
Current table = dbo.ExcessInventory12MthReport'
What I want to accomplish are:
1) Create a dynamic stored procedure to look an item number if exist this month then get it from Current table and but if it did not exist last month then get it from the history table. I don't want to change the date of history table every time I run the stored procedure like example of history tables: dbo.[ExcessInventory12MthReport-11-05-2007], .[ExcessInventory12MthReport-10-08-2007],.[ExcessInventory12MthReport-09-03-2007], etc. etc.
2) How to get the history table using the variable @copydate? Is that possible? I have no clue.
3) Can I get the item number from history table with a variable in it and compared it to the current table?
Please help! Thanks.
See code below:
DECLARE @SQL as nvarchar(4000)
DECLARE @CopyDate as varchar(11)
--Create copies of tables for History Archives
select @CopyDate = '-'+ case when DatePart(mm,getdate()) <10 then '0' + Cast(DatePart(mm,getdate())as Char(1)) else Cast(DatePart(mm,getdate())as Char(2)) end +'-'+ case when DatePart(dd,getdate()) <10 then '0' + Cast(DatePart(dd,getdate())as Char(1)) else Cast(DatePart(dd,getdate())as Char(2)) end +'-'+ Cast(DatePart(yyyy,getdate()) as Char(4))
--Below is the table that makes a copy of last month's table and it puts a date after the table's name.
Set @SQL = 'select *