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 |
|
AdamWest
Constraint Violating Yak Guru
360 Posts |
Posted - 2011-11-09 : 17:23:06
|
| this simple code is causing the sp to not compile with all sorts of errors : all i am trying to do is check this table at the customer site if its empty then we don't display the app.if (select count(*) from oen.dbd_c_modules) > 0 begin insert into [OEN].[DBD_C_MODULES]([MODULE_ID], [DESCRIPTION], ACTIVE)VALUES(11,'Medications',1) endgoerrors:Msg 102, Level 15, State 1, Procedure DBD_GET_MEDICINE, Line 24Incorrect syntax near 'end'.Msg 137, Level 15, State 2, Line 15Must declare the scalar variable "@DATEFROM".Msg 137, Level 15, State 2, Line 16Must declare the scalar variable "@DATEFROM".Msg 137, Level 15, State 2, Line 39Must declare the scalar variable "@FACILITYKEY".Msg 156, Level 15, State 1, Line 52Incorrect syntax near the keyword 'AND'.Msg 156, Level 15, State 1, Line 56Incorrect syntax near the keyword 'AND'. |
|
|
TG
Master Smack Fu Yak Hacker
6065 Posts |
Posted - 2011-11-09 : 17:31:39
|
| Post the entire SP creation code - I don't see any problem with what you have.Be One with the OptimizerTG |
 |
|
|
AdamWest
Constraint Violating Yak Guru
360 Posts |
Posted - 2011-11-09 : 17:39:43
|
| OK thank you TG, sorry its a bit unformatted but this is driving me batty.USE [PRO2]GO/****** Object: StoredProcedure [OEN].[DBD_GET_MEDICINE] Script Date: 11/09/2011 15:33:16 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER PROCEDURE [OEN].[DBD_GET_MEDICINE] ( @FACILITYKEY varchar(1000), @DATEFROM DATETIME, @DATETHRU DATETIME, @UNITSTR VARCHAR(100), @INCLUDEDISCH NUMERIC(1, 0), @PATNUMBER NUMERIC(9, 0), @MEDNAME VARCHAR(100))ASBEGIN--declare @row_count int --select count(*) from [OEN].[DBD_GET_MEDICINE]if (select count(*) from OEN.DBD_C_MODULES) > 0 begin insert into [OEN].[DBD_C_MODULES]([MODULE_ID], [DESCRIPTION], ACTIVE)VALUES(11,'Medications',1) endgoSELECT CONVERT(DATETIME, CONVERT(VARCHAR(8), SM.ADMIN_TIME, 1)) AS [Date], COUNT( SM.ADMIN_TIME) AS [Count] FROM ( SELECT RTRIM(M.LAST_NAME) + CASE WHEN RTRIM(M.FIRST_NAME) <> '' THEN ', 'ELSE ''END + RTRIM(M.FIRST_NAME) PATIENT_NAME,CASE WHEN M.NURSING_UNIT is not null THEN M.NURSING_UNIT ELSE '' END NURSING_UNIT, CASE WHEN M.UNIT_CODE is not null THEN M.UNIT_CODE ELSE '' END UNIT_CODE, SUBSTRING(M.ROOM_BED, 1, CHARINDEX(' ', M.ROOM_BED) - 1) ROOM, CONVERT(VARCHAR, DTR.DATE_ORDER, 110) + ' '+ SUBSTRING(CONVERT(VARCHAR, AM.ADMIN_TIME, 100), 13, 7) ADMIN_TIME,AM.ORDER_NAME,AM.DOSAGE,AM.DOSAGE_FORM,CASE WHEN AL.ADMIN_RESULT = -9 THEN 'Y' ELSE '' END NOTE_ENTERED, AM.ORDER_KEY FROM ( ( ( ( ( SELECT OEN.DATEONLY(@DATEFROM + TEMP.PIV) DATE_ORDER, DATEPART(dd, @DATEFROM + TEMP.PIV) DAY_ORDER FROM ( SELECT TOP ( DATEDIFF(dd, @DATEFROM, @DATETHRU)+ 1 )ROW_NUMBER() OVER ( ORDER BY DX_KEY ) PIV FROM OEN.GEN_C_DX) TEMPWHERE @DATEFROM + TEMP.PIV <= @DATETHRU) DTRINNER JOIN OPTC.ORD_M_ADMIN AM ON DTR.DATE_ORDER+ ( AM.ADMIN_TIME- OEN.DATEONLY(AM.ADMIN_TIME) ) BETWEEN AM.START_DATE AND AM.END_DATE)LEFT OUTER JOIN OPTC.ORD_D_ADMIN_LOG AL ON AM.ORDER_KEY = AL.ORDER_KEY --AG AND OEN.DATEONLY(AL.ADMIN_DATETIME) = DTR.DATE_ORDER AND OEN.DATEONLY(AL.ADMIN_TIME) = DTR.DATE_ORDER AND AL.ADMIN_TIME-- OEN.DATEONLY(AL.ADMIN_TIME) = AM.ADMIN_TIME-- OEN.DATEONLY(AM.ADMIN_TIME))LEFT OUTER JOIN OPTC.ORD_C_ADMIN_RESULT AR ON AL.ADMIN_RESULT = AR.RESULT_KEY)INNER JOIN OEN.GEN_M_PATIENT_MAST M ON AM.PAT_NUMBER = M.PAT_NUMBER AND AM.FACILITY_KEY = M.FACILITY_KEY AND ( @UNITSTR IS NULL OR @UNITSTR = ''OR CHARINDEX(M.UNIT_CODE, @UNITSTR)% 2 = 1))LEFT OUTER JOIN OEN.GEN_M_DOCTOR_MAST DR ON M.PRIMARY_DOCTOR_KEY = DR.DOCTOR_KEY AND M.FACILITY_KEY = DR.FACILITY_KEY WHERE AM.FACILITY_KEY IN (SELECT Value FROM dbo.ListToTable(@FACILITYKEY,',')) AND ( AM.PAT_NUMBER = @PATNUMBER OR @PATNUMBER = -1)AND ( @MEDNAME IS NULLOR @MEDNAME = ''OR AM.ORDER_NAME LIKE ( '%' + @MEDNAME + '%' ))AND AM.PRN = 0AND OPTC.ORD_IS_ADMIN(AM.START_DATE, DTR.DATE_ORDER, AM.DAYS_REQ) = 1 AND NOT EXISTS ( SELECT AL1.ORDER_KEY FROM OPTC.ORD_D_ADMIN_LOG AL1 WHERE AL1.ORDER_KEY = AM.ORDER_KEY --AG AND OEN.DATEONLY(AL1.ADMIN_DATETIME) = DTR.DATE_ORDER AND OEN.DATEONLY(AL1.ADMIN_TIME) = DTR.DATE_ORDER AND AL1.ADMIN_TIME-- OEN.DATEONLY(AL1.ADMIN_TIME) = AM.ADMIN_TIME-- OEN.DATEONLY(AM.ADMIN_TIME)AND CHARINDEX(CAST(ABS(AL1.ADMIN_RESULT) AS VARCHAR(2)),'01234') > 0 )AND NOT EXISTS ( SELECT OM.ORDER_KEYFROM OPTC.ORD_M_ORDER OMWHERE OM.ORDER_STATUS = 0AND OM.HOLD_ON_FROM = AM.ORDER_KEYAND DTR.DATE_ORDER BETWEEN OM.START_DATE AND OM.END_DATE ) AND ( ( @INCLUDEDISCH = 0 ) OR ( 1 = ( CASE WHEN ( @INCLUDEDISCH = 1 ) AND M.DISCHARGE_DATE IS NULL THEN 1 WHEN ( @INCLUDEDISCH = 2 ) AND ( M.DISCHARGE_DATE IS NOT NULL ) THEN 1 ELSE 0 END ) ))) SMGROUP BY CONVERT(DATETIME, CONVERT(VARCHAR(8), SM.ADMIN_TIME, 1)) END |
 |
|
|
TG
Master Smack Fu Yak Hacker
6065 Posts |
Posted - 2011-11-09 : 17:50:33
|
You can't have a "GO" within the SP code. So get rid of this one:insert into [OEN].[DBD_C_MODULES]([MODULE_ID], [DESCRIPTION], ACTIVE)VALUES(11,'Medications',1)endgo Be One with the OptimizerTG |
 |
|
|
|
|
|
|
|