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.

 All Forums
 General SQL Server Forums
 New to SQL Server Programming
 if statement

Author  Topic 

gavakie
Posting Yak Master

221 Posts

Posted - 2010-10-20 : 17:54:49
Getting an error on the second end. What am i missing


Declare @Date datetime
Set @Date = (SELECT DATEADD(DD,-7,max(dte))MDATE
From smb.dbo.vw_p_date_ref
Where FISCAL_MNTH = Case When CASE WHEN Day(getdate()) < 23 then MONTH(getdate()-DAY(getdate()))+1 Else Month(getdate())+1 End = 13 then 1 else CASE WHEN Day(getdate()) < 23 then MONTH(getdate()-DAY(getdate()))+1 Else Month(getdate())+1 End End
And FISCAL_YR = Case when MONTH(getdate()) = 12 and DAY(getdate()) > 21 then YEAR(getdate())+1 else YEAR(getdate()) End
)

IF GETDATE()< @Date

Begin

Select top 10
Case when MONTH(SCHED_DTE_OJB) = 12 and DAY(SCHED_DTE_OJB) > 21 then YEAR(SCHED_DTE_OJB)+1 else YEAR(SCHED_DTE_OJB) End AS fiscal_yr,
Case When CASE WHEN Day(SCHED_DTE_OJB) < 22 then MONTH(SCHED_DTE_OJB-DAY(SCHED_DTE_OJB))+1 Else Month(SCHED_DTE_OJB)+1 End = 13 then 1 else CASE WHEN Day(SCHED_DTE_OJB) < 22 then MONTH(SCHED_DTE_OJB-DAY(SCHED_DTE_OJB))+1 Else Month(SCHED_DTE_OJB)+1 End End as fiscal_mnth,
*
FROM ReportDB.dbo.vw_sales_serv_lvl_sum_pend sc
INNER JOIN smb.dbo.vw_p_date_ref AS d ON sc.CREATE_DTE_oor = d.dte
INNER JOIN vtgMaster.dbo.HSE_BASE AS hb ON sc.HSE_KEY_oor = hb.HSE_KEY_HSE
INNER JOIN vtgMaster.dbo.SBB_BASE AS sb ON sc.SUB_ACCT_NO_OPI = sb.SUB_ACCT_NO_SBB
INNER JOIN vtgMaster.dbo.HSL_LOB as hl on sc.HSE_KEY_oor = hl.HSE_KEY_HSL
LEFT JOIN SMB.dbo.vw_emp_profile AS E ON sc.SALESREP_OOR = E.CSG_SALESID
Left Join vtgMaster.dbo.OJB_JOBS oj on sc.ORDER_NO_oor = oj.ORDER_NO_OJB
WHERE hl.LOB_IND_HSL = 'C' and hl.SERV_STAT_HSL = 'S'
And sc.JOB_CLASS IN('C','R','S')
And Case When CASE WHEN Day(SCHED_DTE_OJB) < 22 then MONTH(SCHED_DTE_OJB-DAY(SCHED_DTE_OJB))+1 Else Month(SCHED_DTE_OJB)+1 End = 13 then 1 else CASE WHEN Day(SCHED_DTE_OJB) < 22 then MONTH(SCHED_DTE_OJB-DAY(SCHED_DTE_OJB))+1 Else Month(SCHED_DTE_OJB)+1 End End = Case When CASE WHEN Day(getdate()) < 23 then MONTH(getdate()-DAY(getdate()))+1 Else Month(getdate())+1 End = 13 then 1 else CASE WHEN Day(getdate()) < 23 then MONTH(getdate()-DAY(getdate()))+1 Else Month(getdate())+1 End End
And Case when MONTH(getdate()) = 12 and DAY(getdate()) > 21 then YEAR(getdate())+1 else YEAR(getdate()) End = Case when MONTH(SCHED_DTE_OJB) = 12 and DAY(SCHED_DTE_OJB) > 21 then YEAR(SCHED_DTE_OJB)+1 else YEAR(SCHED_DTE_OJB) End
End

Else

Select top 10
Case when MONTH(SCHED_DTE_OJB) = 12 and DAY(SCHED_DTE_OJB) > 21 then YEAR(SCHED_DTE_OJB)+1 else YEAR(SCHED_DTE_OJB) End AS fiscal_yr,
Case When CASE WHEN Day(SCHED_DTE_OJB) < 22 then MONTH(SCHED_DTE_OJB-DAY(SCHED_DTE_OJB))+1 Else Month(SCHED_DTE_OJB)+1 End = 13 then 1 else CASE WHEN Day(SCHED_DTE_OJB) < 22 then MONTH(SCHED_DTE_OJB-DAY(SCHED_DTE_OJB))+1 Else Month(SCHED_DTE_OJB)+1 End End as fiscal_mnth,
*
FROM ReportDB.dbo.vw_sales_serv_lvl_sum_pend sc
INNER JOIN smb.dbo.vw_p_date_ref AS d ON sc.CREATE_DTE_oor = d.dte
INNER JOIN vtgMaster.dbo.HSE_BASE AS hb ON sc.HSE_KEY_oor = hb.HSE_KEY_HSE
INNER JOIN vtgMaster.dbo.SBB_BASE AS sb ON sc.SUB_ACCT_NO_OPI = sb.SUB_ACCT_NO_SBB
INNER JOIN vtgMaster.dbo.HSL_LOB as hl on sc.HSE_KEY_oor = hl.HSE_KEY_HSL
LEFT JOIN SMB.dbo.vw_emp_profile AS E ON sc.SALESREP_OOR = E.CSG_SALESID
Left Join vtgMaster.dbo.OJB_JOBS oj on sc.ORDER_NO_oor = oj.ORDER_NO_OJB
WHERE hl.LOB_IND_HSL = 'C' and hl.SERV_STAT_HSL = 'S'
And sc.JOB_CLASS IN('C','R','S')
And Case When CASE WHEN Day(SCHED_DTE_OJB) < 22 then MONTH(SCHED_DTE_OJB-DAY(SCHED_DTE_OJB))+1 Else Month(SCHED_DTE_OJB)+1 End = 13 then 1 else CASE WHEN Day(SCHED_DTE_OJB) < 22 then MONTH(SCHED_DTE_OJB-DAY(SCHED_DTE_OJB))+1 Else Month(SCHED_DTE_OJB)+1 End End = Case When CASE WHEN Day(getdate()) < 23 then MONTH(getdate()-DAY(getdate()))+1 Else Month(getdate())+1 End = 13 then 1 else CASE WHEN Day(getdate()) < 23 then MONTH(getdate()-DAY(getdate()))+1 Else Month(getdate())+1 End End +7
And Case when MONTH(getdate()) = 12 and DAY(getdate()) > 21 then YEAR(getdate())+1 else YEAR(getdate()) End = Case when MONTH(SCHED_DTE_OJB) = 12 and DAY(SCHED_DTE_OJB) > 21 then YEAR(SCHED_DTE_OJB)+1 else YEAR(SCHED_DTE_OJB) End

End

gavakie
Posting Yak Master

221 Posts

Posted - 2010-10-20 : 18:01:51
Nm i saw my mistake.
Go to Top of Page

webfred
Master Smack Fu Yak Hacker

8781 Posts

Posted - 2010-10-21 : 02:38:02
Looks like there is a BEGIN after ELSE missing.
Next time you should also post the given error message


No, you're never too old to Yak'n'Roll if you're too young to die.
Go to Top of Page
   

- Advertisement -