I am trying to use IF statements in a Stored Procedure that would allow me to test for Null values. See Code below:
CREATE PROCEDURE SRS_ARREPORTING
@Phys_Start VarChar(4), @Phys_End VarChar(4), @Loc_Start VarChar(2), @Loc_End VarChar(2),
@Start_Proc_Cod e VarChar(5), @End_Proc_Code VarChar(5), @FC_Start VarChar(2), @FC_End VarChar(2),
@Dept_Start VarChar(2), @Dept_End VarChar(2), @DOS_Start Char(10), @DOS_End Char(10), @Post_Start Char(10), @Post_End Char(10)
AS
IF ((@Post_Start is Null ) AND (@Post_End is Null))
BEGIN
SELECT OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.POST _DT, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD,
OI_CHARGES.PROC _CD_MOD, OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION,
OI_CHARGES.DIAG _CD, OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
FROM MPI AS MPI_PAT INNER JOIN
PATIENT ON MPI_PAT.MPI_SET = PATIENT.MPI_SET AND MPI_PAT.MPI_NBR = PATIENT.MPI_NBR INNER JOIN
OI_CHARGES ON PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND
PATIENT.PAT_NBR = OI_CHARGES.PAT_ NBR INNER JOIN
OI_CLAIM_CHARGE S INNER JOIN
OI_INS_CLAIM ON OI_CLAIM_CHARGE S.INSURANCE_ID = OI_INS_CLAIM.IN SURANCE_ID ON
OI_CHARGES.CHAR GE_ID = OI_CLAIM_CHARGE S.CHARGE_ID AND OI_CHARGES.RESP _GUAR_NBR = OI_CLAIM_CHARGE S.RESP_GUAR_NBR AND
OI_CHARGES.SUPP _PAT_NBR = OI_CLAIM_CHARGE S.SUPP_PAT_NBR AND OI_CHARGES.CUST _NBR = OI_CLAIM_CHARGE S.CUST_NBR INNER JOIN
PC_DESC ON OI_CHARGES.PROC _CD = PC_DESC.PC_PROC _CD AND OI_CHARGES.PROC _CD_DEPT = PC_DESC.PC_DEPT _CD INNER JOIN
INS_CARRIER ON OI_INS_CLAIM.IN S_CARRIER = INS_CARRIER.CAR RIER_NBR
WHERE (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND (OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND
@Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND @End_Proc_Code) AND (OI_CHARGES.CUR RENT_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN @Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND
(OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND @Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND
@End_Proc_Code) AND (OI_CHARGES.CUR RENT_FC BETWEEN @FC_Start AND @FC_End) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN
@Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN @FC_Start AND @FC_End) AND (OI_CHARGES.DT_ OF_SERVICE BETWEEN
@DOS_Start AND @DOS_End)
GROUP BY OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD, OI_CHARGES.PROC _CD_MOD,
OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION, OI_CHARGES.DIAG _CD,
OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.POST _DT, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
END
IF ((@DOS_Start is Null) AND (@DOS_End is Null))
BEGIN
SELECT OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.POST _DT, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD,
OI_CHARGES.PROC _CD_MOD, OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION,
OI_CHARGES.DIAG _CD, OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
FROM MPI AS MPI_PAT INNER JOIN
PATIENT ON MPI_PAT.MPI_SET = PATIENT.MPI_SET AND MPI_PAT.MPI_NBR = PATIENT.MPI_NBR INNER JOIN
OI_CHARGES ON PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND
PATIENT.PAT_NBR = OI_CHARGES.PAT_ NBR INNER JOIN
OI_CLAIM_CHARGE S INNER JOIN
OI_INS_CLAIM ON OI_CLAIM_CHARGE S.INSURANCE_ID = OI_INS_CLAIM.IN SURANCE_ID ON
OI_CHARGES.CHAR GE_ID = OI_CLAIM_CHARGE S.CHARGE_ID AND OI_CHARGES.RESP _GUAR_NBR = OI_CLAIM_CHARGE S.RESP_GUAR_NBR AND
OI_CHARGES.SUPP _PAT_NBR = OI_CLAIM_CHARGE S.SUPP_PAT_NBR AND OI_CHARGES.CUST _NBR = OI_CLAIM_CHARGE S.CUST_NBR INNER JOIN
PC_DESC ON OI_CHARGES.PROC _CD = PC_DESC.PC_PROC _CD AND OI_CHARGES.PROC _CD_DEPT = PC_DESC.PC_DEPT _CD INNER JOIN
INS_CARRIER ON OI_INS_CLAIM.IN S_CARRIER = INS_CARRIER.CAR RIER_NBR
WHERE (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND (OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND
@Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND @End_Proc_Code) AND (OI_CHARGES.CUR RENT_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN @Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND
(OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND @Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND
@End_Proc_Code) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN @Dept_Start AND @Dept_End)
AND (OI_CHARGES.ORI G_FC BETWEEN @FC_Start AND @FC_End) AND (OI_CHARGES.POS T_DT BETWEEN @Post_Start AND @Post_End)
GROUP BY OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD, OI_CHARGES.PROC _CD_MOD,
OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION, OI_CHARGES.DIAG _CD,
OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.POST _DT, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
END
IF ((@DOS_Start is Null) AND (@DOS_End is Null) AND (@Post_Start is Null ) AND (@Post_End is Null))
BEGIN
SELECT OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.POST _DT, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD,
OI_CHARGES.PROC _CD_MOD, OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION,
OI_CHARGES.DIAG _CD, OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
FROM MPI AS MPI_PAT INNER JOIN
PATIENT ON MPI_PAT.MPI_SET = PATIENT.MPI_SET AND MPI_PAT.MPI_NBR = PATIENT.MPI_NBR INNER JOIN
OI_CHARGES ON PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND
PATIENT.PAT_NBR = OI_CHARGES.PAT_ NBR INNER JOIN
OI_CLAIM_CHARGE S INNER JOIN
OI_INS_CLAIM ON OI_CLAIM_CHARGE S.INSURANCE_ID = OI_INS_CLAIM.IN SURANCE_ID ON
OI_CHARGES.CHAR GE_ID = OI_CLAIM_CHARGE S.CHARGE_ID AND OI_CHARGES.RESP _GUAR_NBR = OI_CLAIM_CHARGE S.RESP_GUAR_NBR AND
OI_CHARGES.SUPP _PAT_NBR = OI_CLAIM_CHARGE S.SUPP_PAT_NBR AND OI_CHARGES.CUST _NBR = OI_CLAIM_CHARGE S.CUST_NBR INNER JOIN
PC_DESC ON OI_CHARGES.PROC _CD = PC_DESC.PC_PROC _CD AND OI_CHARGES.PROC _CD_DEPT = PC_DESC.PC_DEPT _CD INNER JOIN
INS_CARRIER ON OI_INS_CLAIM.IN S_CARRIER = INS_CARRIER.CAR RIER_NBR
WHERE (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND (OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND
@Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND @End_Proc_Code) AND (OI_CHARGES.CUR RENT_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN @Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND
(OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND @Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND
@End_Proc_Code) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN
@Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN @FC_Start AND @FC_End)
GROUP BY OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD, OI_CHARGES.PROC _CD_MOD,
OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION, OI_CHARGES.DIAG _CD,
OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.POST _DT, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
END
ELSE
BEGIN
SELECT OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.POST _DT, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD,
OI_CHARGES.PROC _CD_MOD, OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION,
OI_CHARGES.DIAG _CD, OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
FROM MPI AS MPI_PAT INNER JOIN
PATIENT ON MPI_PAT.MPI_SET = PATIENT.MPI_SET AND MPI_PAT.MPI_NBR = PATIENT.MPI_NBR INNER JOIN
OI_CHARGES ON PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND
PATIENT.PAT_NBR = OI_CHARGES.PAT_ NBR INNER JOIN
OI_CLAIM_CHARGE S INNER JOIN
OI_INS_CLAIM ON OI_CLAIM_CHARGE S.INSURANCE_ID = OI_INS_CLAIM.IN SURANCE_ID ON
OI_CHARGES.CHAR GE_ID = OI_CLAIM_CHARGE S.CHARGE_ID AND OI_CHARGES.RESP _GUAR_NBR = OI_CLAIM_CHARGE S.RESP_GUAR_NBR AND
OI_CHARGES.SUPP _PAT_NBR = OI_CLAIM_CHARGE S.SUPP_PAT_NBR AND OI_CHARGES.CUST _NBR = OI_CLAIM_CHARGE S.CUST_NBR INNER JOIN
PC_DESC ON OI_CHARGES.PROC _CD = PC_DESC.PC_PROC _CD AND OI_CHARGES.PROC _CD_DEPT = PC_DESC.PC_DEPT _CD INNER JOIN
INS_CARRIER ON OI_INS_CLAIM.IN S_CARRIER = INS_CARRIER.CAR RIER_NBR
WHERE (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND (OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND
@Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND @End_Proc_Code) AND (OI_CHARGES.CUR RENT_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN @Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND
(OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND @Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND
@End_Proc_Code) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN
@Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN @FC_Start AND @FC_End) AND (OI_CHARGES.DT_ OF_SERVICE BETWEEN
@DOS_Start AND @DOS_End) AND (OI_CHARGES.POS T_DT BETWEEN @Post_Start AND @Post_End)
GROUP BY OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD, OI_CHARGES.PROC _CD_MOD,
OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION, OI_CHARGES.DIAG _CD,
OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.POST _DT, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
END
GO
When I run this with DOS START & END being NULL no results are given, same goes with POST START & END. Do I not have the code set right?
Matt
CREATE PROCEDURE SRS_ARREPORTING
@Phys_Start VarChar(4), @Phys_End VarChar(4), @Loc_Start VarChar(2), @Loc_End VarChar(2),
@Start_Proc_Cod e VarChar(5), @End_Proc_Code VarChar(5), @FC_Start VarChar(2), @FC_End VarChar(2),
@Dept_Start VarChar(2), @Dept_End VarChar(2), @DOS_Start Char(10), @DOS_End Char(10), @Post_Start Char(10), @Post_End Char(10)
AS
IF ((@Post_Start is Null ) AND (@Post_End is Null))
BEGIN
SELECT OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.POST _DT, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD,
OI_CHARGES.PROC _CD_MOD, OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION,
OI_CHARGES.DIAG _CD, OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
FROM MPI AS MPI_PAT INNER JOIN
PATIENT ON MPI_PAT.MPI_SET = PATIENT.MPI_SET AND MPI_PAT.MPI_NBR = PATIENT.MPI_NBR INNER JOIN
OI_CHARGES ON PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND
PATIENT.PAT_NBR = OI_CHARGES.PAT_ NBR INNER JOIN
OI_CLAIM_CHARGE S INNER JOIN
OI_INS_CLAIM ON OI_CLAIM_CHARGE S.INSURANCE_ID = OI_INS_CLAIM.IN SURANCE_ID ON
OI_CHARGES.CHAR GE_ID = OI_CLAIM_CHARGE S.CHARGE_ID AND OI_CHARGES.RESP _GUAR_NBR = OI_CLAIM_CHARGE S.RESP_GUAR_NBR AND
OI_CHARGES.SUPP _PAT_NBR = OI_CLAIM_CHARGE S.SUPP_PAT_NBR AND OI_CHARGES.CUST _NBR = OI_CLAIM_CHARGE S.CUST_NBR INNER JOIN
PC_DESC ON OI_CHARGES.PROC _CD = PC_DESC.PC_PROC _CD AND OI_CHARGES.PROC _CD_DEPT = PC_DESC.PC_DEPT _CD INNER JOIN
INS_CARRIER ON OI_INS_CLAIM.IN S_CARRIER = INS_CARRIER.CAR RIER_NBR
WHERE (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND (OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND
@Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND @End_Proc_Code) AND (OI_CHARGES.CUR RENT_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN @Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND
(OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND @Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND
@End_Proc_Code) AND (OI_CHARGES.CUR RENT_FC BETWEEN @FC_Start AND @FC_End) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN
@Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN @FC_Start AND @FC_End) AND (OI_CHARGES.DT_ OF_SERVICE BETWEEN
@DOS_Start AND @DOS_End)
GROUP BY OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD, OI_CHARGES.PROC _CD_MOD,
OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION, OI_CHARGES.DIAG _CD,
OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.POST _DT, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
END
IF ((@DOS_Start is Null) AND (@DOS_End is Null))
BEGIN
SELECT OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.POST _DT, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD,
OI_CHARGES.PROC _CD_MOD, OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION,
OI_CHARGES.DIAG _CD, OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
FROM MPI AS MPI_PAT INNER JOIN
PATIENT ON MPI_PAT.MPI_SET = PATIENT.MPI_SET AND MPI_PAT.MPI_NBR = PATIENT.MPI_NBR INNER JOIN
OI_CHARGES ON PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND
PATIENT.PAT_NBR = OI_CHARGES.PAT_ NBR INNER JOIN
OI_CLAIM_CHARGE S INNER JOIN
OI_INS_CLAIM ON OI_CLAIM_CHARGE S.INSURANCE_ID = OI_INS_CLAIM.IN SURANCE_ID ON
OI_CHARGES.CHAR GE_ID = OI_CLAIM_CHARGE S.CHARGE_ID AND OI_CHARGES.RESP _GUAR_NBR = OI_CLAIM_CHARGE S.RESP_GUAR_NBR AND
OI_CHARGES.SUPP _PAT_NBR = OI_CLAIM_CHARGE S.SUPP_PAT_NBR AND OI_CHARGES.CUST _NBR = OI_CLAIM_CHARGE S.CUST_NBR INNER JOIN
PC_DESC ON OI_CHARGES.PROC _CD = PC_DESC.PC_PROC _CD AND OI_CHARGES.PROC _CD_DEPT = PC_DESC.PC_DEPT _CD INNER JOIN
INS_CARRIER ON OI_INS_CLAIM.IN S_CARRIER = INS_CARRIER.CAR RIER_NBR
WHERE (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND (OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND
@Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND @End_Proc_Code) AND (OI_CHARGES.CUR RENT_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN @Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND
(OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND @Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND
@End_Proc_Code) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN @Dept_Start AND @Dept_End)
AND (OI_CHARGES.ORI G_FC BETWEEN @FC_Start AND @FC_End) AND (OI_CHARGES.POS T_DT BETWEEN @Post_Start AND @Post_End)
GROUP BY OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD, OI_CHARGES.PROC _CD_MOD,
OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION, OI_CHARGES.DIAG _CD,
OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.POST _DT, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
END
IF ((@DOS_Start is Null) AND (@DOS_End is Null) AND (@Post_Start is Null ) AND (@Post_End is Null))
BEGIN
SELECT OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.POST _DT, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD,
OI_CHARGES.PROC _CD_MOD, OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION,
OI_CHARGES.DIAG _CD, OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
FROM MPI AS MPI_PAT INNER JOIN
PATIENT ON MPI_PAT.MPI_SET = PATIENT.MPI_SET AND MPI_PAT.MPI_NBR = PATIENT.MPI_NBR INNER JOIN
OI_CHARGES ON PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND
PATIENT.PAT_NBR = OI_CHARGES.PAT_ NBR INNER JOIN
OI_CLAIM_CHARGE S INNER JOIN
OI_INS_CLAIM ON OI_CLAIM_CHARGE S.INSURANCE_ID = OI_INS_CLAIM.IN SURANCE_ID ON
OI_CHARGES.CHAR GE_ID = OI_CLAIM_CHARGE S.CHARGE_ID AND OI_CHARGES.RESP _GUAR_NBR = OI_CLAIM_CHARGE S.RESP_GUAR_NBR AND
OI_CHARGES.SUPP _PAT_NBR = OI_CLAIM_CHARGE S.SUPP_PAT_NBR AND OI_CHARGES.CUST _NBR = OI_CLAIM_CHARGE S.CUST_NBR INNER JOIN
PC_DESC ON OI_CHARGES.PROC _CD = PC_DESC.PC_PROC _CD AND OI_CHARGES.PROC _CD_DEPT = PC_DESC.PC_DEPT _CD INNER JOIN
INS_CARRIER ON OI_INS_CLAIM.IN S_CARRIER = INS_CARRIER.CAR RIER_NBR
WHERE (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND (OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND
@Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND @End_Proc_Code) AND (OI_CHARGES.CUR RENT_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN @Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND
(OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND @Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND
@End_Proc_Code) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN
@Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN @FC_Start AND @FC_End)
GROUP BY OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD, OI_CHARGES.PROC _CD_MOD,
OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION, OI_CHARGES.DIAG _CD,
OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.POST _DT, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
END
ELSE
BEGIN
SELECT OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.POST _DT, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD,
OI_CHARGES.PROC _CD_MOD, OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION,
OI_CHARGES.DIAG _CD, OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
FROM MPI AS MPI_PAT INNER JOIN
PATIENT ON MPI_PAT.MPI_SET = PATIENT.MPI_SET AND MPI_PAT.MPI_NBR = PATIENT.MPI_NBR INNER JOIN
OI_CHARGES ON PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND PATIENT.CUST_NB R = OI_CHARGES.CUST _NBR AND
PATIENT.PAT_NBR = OI_CHARGES.PAT_ NBR INNER JOIN
OI_CLAIM_CHARGE S INNER JOIN
OI_INS_CLAIM ON OI_CLAIM_CHARGE S.INSURANCE_ID = OI_INS_CLAIM.IN SURANCE_ID ON
OI_CHARGES.CHAR GE_ID = OI_CLAIM_CHARGE S.CHARGE_ID AND OI_CHARGES.RESP _GUAR_NBR = OI_CLAIM_CHARGE S.RESP_GUAR_NBR AND
OI_CHARGES.SUPP _PAT_NBR = OI_CLAIM_CHARGE S.SUPP_PAT_NBR AND OI_CHARGES.CUST _NBR = OI_CLAIM_CHARGE S.CUST_NBR INNER JOIN
PC_DESC ON OI_CHARGES.PROC _CD = PC_DESC.PC_PROC _CD AND OI_CHARGES.PROC _CD_DEPT = PC_DESC.PC_DEPT _CD INNER JOIN
INS_CARRIER ON OI_INS_CLAIM.IN S_CARRIER = INS_CARRIER.CAR RIER_NBR
WHERE (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND (OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND
@Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND @End_Proc_Code) AND (OI_CHARGES.CUR RENT_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN @Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN
@FC_Start AND @FC_End) AND (OI_CHARGES.PER F_PHYS_NBR BETWEEN @Phys_Start AND @Phys_End) AND
(OI_CHARGES.SER V_LOCATION BETWEEN @Loc_Start AND @Loc_End) AND (OI_CHARGES.PRO C_CD BETWEEN @Start_Proc_Cod e AND
@End_Proc_Code) AND (OI_CHARGES.PER F_DEPT_CD BETWEEN
@Dept_Start AND @Dept_End) AND (OI_CHARGES.ORI G_FC BETWEEN @FC_Start AND @FC_End) AND (OI_CHARGES.DT_ OF_SERVICE BETWEEN
@DOS_Start AND @DOS_End) AND (OI_CHARGES.POS T_DT BETWEEN @Post_Start AND @Post_End)
GROUP BY OI_CHARGES.PAT_ NBR, MPI_PAT.DISPLAY _NM, OI_CHARGES.DT_O F_SERVICE, OI_CHARGES.PROC _CD, OI_CHARGES.PROC _CD_MOD,
OI_CHARGES.PERF _PHYS_NBR, OI_CHARGES.PERF _DEPT_CD, OI_CHARGES.SERV _LOCATION, OI_CHARGES.DIAG _CD,
OI_INS_CLAIM.IN S_CARRIER, OI_CHARGES.POST _DT, OI_CHARGES.BILL ED_AMT, OI_CHARGES.OPEN _AMT, OI_CHARGES.INS_ RESP_AMT,
OI_CHARGES.INS_ PAID_AMT, OI_CHARGES.INS_ ADJ_AMT, OI_CHARGES.PAT_ RESP_AMT, OI_CHARGES.PAT_ PAID_AMT, OI_CHARGES.PAT_ ADJ_AMT,
OI_CHARGES.NBR_ UNITS, PC_DESC.PROC_CD _DESC_1, INS_CARRIER.CAR RIER_NM, OI_CHARGES.ORIG _FC
END
GO
When I run this with DOS START & END being NULL no results are given, same goes with POST START & END. Do I not have the code set right?
Matt
Comment