Click here to Skip to main content
15,891,136 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Can Anyone Explain following code step by step please....




ALTER procedure [dbo].[amazon_Number1Direct_reports](@usname varchar(100),@date varchar(50))
as
begin 
if (@date ='')
begin 
DECLARE @sql VARCHAR(2000)
--declare @usname varchar(100)
SET @sql = '
SELECT ID,MPN,productname,updateddate,
MAX(CASE WHEN low = 1 THEN Merchants ELSE NULL END) AS LowPriceMerchant,
MAX(CASE WHEN low = 1 THEN baseprice ELSE NULL END) AS LowPrice,
MAX(CASE WHEN high = 1 THEN merchants ELSE NULL END) AS HighPriceMerchant,
MAX(CASE WHEN high = 1 THEN baseprice ELSE NULL END) AS HighPrice,
MAX(CASE merchants WHEN ''' + @usname + '''  THEN baseprice ELSE NULL END) AS MyPrice,
MAX(CASE merchants WHEN ''' + @usname + ''' THEN bottomlineprice ELSE NULL END) AS MyBottomprice
INTO ##Temp
FROM (
SELECT ID,MPN,productname,updateddate,
merchants,
baseprice,
bottomlineprice,
ROW_NUMBER() OVER (PARTITION BY ID,MPN,updateddate,productname ORDER BY baseprice DESC) AS high,
ROW_NUMBER() OVER (PARTITION BY ID,MPN,updateddate,productname ORDER BY baseprice asc) AS low
FROM [tbl_amazon1_master_merchant]
) AS t
GROUP BY ID,MPN,productname,updateddate
SELECT 
m.MPN,
t1.product_description as Product_Title,
m.MyPrice,
m.MyBottomprice,
m.LowPrice,
case m.LowPriceMerchant when ''' + @usname + ''' then ''you'' else m.LowPriceMerchant end as LowPriceMerchant,
m.HighPrice,
case m.HighPriceMerchant when '''+ @usname+ ''' then ''you'' else m.HighPriceMerchant end as HighPriceMerchant
FROM ##Temp AS m
INNER JOIN tbl_amazon1_master_product AS t1 ON t1.ID = m.ID and datename(dd,t1.updated_date)= datename(dd,m.updateddate) and datename(mm,t1.updated_date)= datename(mm,m.updateddate)and datename(yy,t1.updated_date)=datename(yy,m.updateddate) and datename(dd,t1.updated_date)= datename(dd,getdate()) and datename(mm,t1.updated_date)=datename(mm,getdate()) and datename(yy,t1.updated_date)=datename(yy,getdate())
drop table ##temp'
exec (@sql)
end
else
begin
DECLARE @sql1 VARCHAR(2000)
--declare @usname varchar(100)
SET @sql1 = '
SELECT ID,MPN,productname,updateddate,
MAX(CASE WHEN low = 1 THEN Merchants ELSE NULL END) AS LowPriceMerchant,
MAX(CASE WHEN low = 1 THEN baseprice ELSE NULL END) AS LowPrice,
MAX(CASE WHEN high = 1 THEN merchants ELSE NULL END) AS HighPriceMerchant,
MAX(CASE WHEN high = 1 THEN baseprice ELSE NULL END) AS HighPrice,
MAX(CASE merchants WHEN ''' + @usname + '''  THEN baseprice ELSE NULL END) AS MyPrice,
MAX(CASE merchants WHEN ''' + @usname + ''' THEN bottomlineprice ELSE NULL END) AS MyBottomprice
INTO ##Temp
FROM (
SELECT ID,MPN,productname,updateddate,
merchants,
baseprice,
bottomlineprice,
ROW_NUMBER() OVER (PARTITION BY ID,MPN,updateddate,productname ORDER BY baseprice DESC) AS high,
ROW_NUMBER() OVER (PARTITION BY ID,MPN,updateddate,productname ORDER BY baseprice asc) AS low
FROM tbl_amazon1_master_merchant
) AS t
GROUP BY ID,MPN,productname,updateddate
SELECT 
m.ID,
m.MPN,
t1.product_description as Product_Title,
m.MyPrice,
m.MyBottomprice,
m.LowPrice,
case m.LowPriceMerchant when ''' + @usname + ''' then ''you'' else m.LowPriceMerchant end as LowPriceMerchant,
m.HighPrice,
case m.HighPriceMerchant when '''+ @usname+ ''' then ''you'' else m.HighPriceMerchant end as HighPriceMerchant
FROM ##Temp AS m
INNER JOIN tbl_amazon1_master_product AS t1 ON t1.ID = m.ID and t1.updated_date=m.updateddate and m.updateddate=cast('''+@date+''' as datetime)
drop table ##temp'
--in (select updateddate from tbl_googleshopping2_master_merchant) and datepart(dd,t1.updated_date)= datepart(dd,cast('''+@date+''' as datetime))  and datepart(mm,t1.updated_date)=datepart(mm,cast('''+@date+''' as datetime))  and datepart(yy,t1.updated_date)=datepart(yy,cast('''+@date+''' as datetime))
--INNER JOIN [tbl_Pricegrabber_master_product] as t1 on t1.MobID = m.MobID and datepart(dd,CAST(FLOOR((CAST(t1.Updated_Date as varchar))) AS DATETIME))= datepart(dd,getdate())  and datepart(mm,CAST(FLOOR((CAST(t1.Updated_Date as varchar))) AS DATETIME))=datepart(mm,getdate())  and datepart(yy,CAST(FLOOR((CAST(t1.Updated_Date as varchar))) AS DATETIME))=datepart(yy,getdate())
--INNER JOIN [tbl_Pricegrabber_master_product] as t1 on t1.MobID = m.MobID and datepart(dd,t1.Updated_Date)= datepart(dd,getdate())  and datepart(mm,t1.Updated_Date)=datepart(mm,getdate())  and datepart(yy,t1.Updated_Date)=datepart(yy,getdate())
exec (@sql1)
end
end
Posted

1 solution

Do you have any idea how much work explaining code line by line is?
Every single line needs a paragraph of explanation! For example:

SQL
ALTER procedure [dbo].[amazon_Number1Direct_reports](@usname varchar(100),@date varchar(50))

Change an existing stored procedure called amazon_Number1Direct_reports in the current database. The new procedure definition should take two parameters: the first is called "@usname" and expects a variable length character string of no more than 100 characters. The second is called "@date", and expects a variable length character string of no more than 50 characters.

Can you imagine how long it would take us to explain even a very short code fragment like your example, line by line?

No. It is not going to happen. If you have a specific problem, then ask a question about it. But think first - would you want to sit down for 45 minutes and type up a line-by-line description for no good reason?
 
Share this answer
 
Comments
M.Narmatha 17-Mar-12 5:03am    
k atleast explain main concepts in this coding...
OriginalGriff 17-Mar-12 5:14am    
No.
If you have a specific problem with it, then ask. But we can't hold your hand and guide you though everything!
M.Narmatha 17-Mar-12 5:20am    
kk........

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900