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
 Truncated Message

Author  Topic 

werhardt
Constraint Violating Yak Guru

270 Posts

Posted - 2008-07-29 : 22:42:49
I have this proceedured code that I created which was working great, now it is giving me a message. What does this message mean?

Msg 8152, Level 16, State 14, Line 155
String or binary data would be truncated.


Here is my procedure below. Thanks.

USE [Impact_PROD]
GO
/****** Object: StoredProcedure [dbo].[proc_Build_MonthEndProvidersREVISED] Script Date: 07/29/2008 14:10:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[proc_Build_MonthEndProvidersREVISED]
AS
/**Modified 04/30/2007 By Mike Salerno
Added Step 0 to determine if there is data available for import BEFORE dropping existing tables
If there is no data - this procedure will abort and leave existing data in the provider finder
**/
/**************************************************************************
JGHawley 2006.10.30

Build a process to mimic the NetworX dit_DHS_MonthEndProviders_DGH process
---------------------------------------------------------------------------
proc_Build_MonthEndProviders
DROP TABLE dhs_MonthEndProvidersREVISED
DROP TABLE dhs_prop
sp_helptext dhs_MonthEndProvidersREVISED

SELECT MAX(clm_NewDt) FROM clm

SELECT DISTINCT dgh_prop_disc FROM DHS_MonthEndProviders

SELECT phone, *
FROM DHS_MonthEndProviders
WHERE PROVIDERTYPECODE = 'HOSP'
--[Last Name] = 'morris' AND [First Name] = 'james'
PROVIDERTYPECODE = 'ANC'
AND Doctorid IN ('A6238','A6870','A7010050')
ORDER BY PROVIDERNAME


SELECT pro_id1, pro_spec1, pro_spec2, pro_spec3, *
FROM DHS_MonthEndProviders
WHERE ProviderTypeCode = 'HOSP'
ORDER BY pro_spec1

SELECT pro_id1, pro_spec1, pro_spec2, pro_spec3, pro_phone, *
FROM pro
WHERE pro_id1 = '00232913'
ORDER BY pro_spec1
**/





DECLARE @StartDate datetime
SELECT @StartDate = GETDATE()

PRINT '/** StartDate: **/'
PRINT 'STEP ZERO - Determine if there is data to be imported! If not, then ABORT!'

IF (SELECT COUNT(pro.pro_id1)
FROM pro
JOIN prop dgh
ON pro.pro_id1 = dgh.prop_id1 AND dgh.prop_prd = 'DGH'
WHERE pro.pro_xtyp NOT IN ('BILL', 'EOTF')
AND LEFT(dgh.prop_cont,2) <> 'NP') < 200000
BEGIN
PRINT ''
PRINT 'THERE IS NO DATA TO BE IMPORTED - ABORTING!'
PRINT ''
RETURN
END


PRINT '/** Step 01: ' + CAST(@StartDate AS VARCHAR(25)) + ' CREATE TABLE dhs_MonthEndProvidersREVISED **/'

if exists (
select *
from dbo.sysobjects
where id = object_id(N'[dbo].[dhs_MonthEndProvidersREVISED]')
and OBJECTPROPERTY(id, N'IsTable') = 1)
drop table [dbo].[dhs_MonthEndProvidersREVISED]


CREATE TABLE dhs_MonthEndProvidersREVISED
(
ProviderID int NULL,
[PROVIDERTYPECODE] varchar(40) NULL,
[PROVIDERNAME] varchar(60) NULL,
--PROVIDERCATEGORYCODE varchar(40) NULL,
PROVIDERCATEGORYDESC varchar(40) NULL,

[Update Date] varchar(40) NULL,
[Effective Date] varchar(50) NULL,
[Termination Date] varchar(50) NULL,
[AHS] varchar(40) NULL,
[DoctorID] varchar(40) NULL,
[UPIN] varchar(40) NULL,
[Last Name] varchar(40) NULL,
[First Name] varchar(40) NULL,
[Middle Name] varchar(40) NULL,
[Ext] varchar(40) NULL,
[Degree] varchar(40) NULL,
[Degree2] varchar(40) NULL,
[Social Security] varchar(40) NULL,
[Mental Health] varchar(40) NULL,
[Primary/Specialty] varchar(40) NULL,
[MVA] varchar(40) NULL,
[Workmen's Comp] varchar(40) NULL,
[Spec 1] varchar(40) NULL,
[Spec 2] varchar(40) NULL,
[Spec 3] varchar(40) NULL,
[Tax ID] varchar(40) NULL,
[Practice] varchar(60) NULL,
[IPA_PHO] varchar(40) NULL,
[Address 1] varchar(55) NULL,
[Address 2] varchar(55) NULL,
[Address 3] varchar(55) NULL,
[City] varchar(40) NULL,
[Zip] varchar(40) NULL,
[St] varchar(40) NULL,
[Phone] varchar(40) NULL,
[Fax #] varchar(40) NULL,
[Billing Name] varchar(60) NULL,
[Billing Address] varchar(55) NULL,
[Billing City] varchar(40) NULL,
[Billing Zip] varchar(40) NULL,
[Billing St] varchar(40) NULL,
[Billing Phone] varchar(40) NULL,
[Hospital 1] varchar(50) NULL,
[Hospital 2] varchar(50) NULL,
[Hospital 3] varchar(50) NULL,
[Hospital 4] varchar(50) NULL,
[Hospital 5] varchar(50) NULL,
[COUNTY] varchar(40) NULL,
[Fee Schedule] varchar(40) NULL,
[Workmen's Comp Fee Sch] varchar(40) NULL,
[Signed Contract] varchar(40) NULL,
[Comment] varchar(185) NULL,
[email] varchar(255) NULL,
[URL] varchar(255) NULL,
[LATITUDE] varchar(40) NULL,
[LONGITUDE] varchar(40) NULL,
[DOB] varchar(50) NULL,

[NPI] varchar(10) NULL,
--Impact fields
[pro_id1] varchar(8) NULL,

-- SELECT pro_bref, pro_btag FROM pro ORDER BY pro_bref DESC
[pro_bref] varchar(8) NULL,
[pro_btag] varchar(1) NULL,
[pro_pcs] varchar(8) NULL,

[pro_sex] varchar(1) NULL,
[pro_type] varchar(1) NULL,
[pro_geo] varchar(6) NULL,
[pro_altid] varchar(30) NULL,
[pro_eff] varchar(50) NULL,
[pro_trm] varchar(50) NULL,
[pro_xtyp] varchar(4) NULL,
[pro_chgdt] varchar(50) NULL,
[pro_spec1] varchar(3) NULL,
[pro_spec2] varchar(3) NULL,
[pro_spec3] varchar(3) NULL,

[pro_phone] varchar(24) NULL,

dgh_prop_id1 varchar(8) NULL,
dgh_prop_id2 varchar(4) NULL,
dgh_prop_net varchar(5) NULL,
dgh_prop_prd varchar(5) NULL,
dgh_prop_eff varchar(50) NULL,
dgh_prop_trm varchar(50) NULL,
dgh_prop_pcp varchar(1) NULL,
dgh_prop_prc varchar(6) NULL,
dgh_prop_uac varchar(5) NULL,
dgh_prop_cont varchar(8) NULL,
dgh_prop_disc decimal(5,2) NULL,
dgh_prop_chgdt varchar(50) NULL,
mva_prop_id1 varchar(8) NULL,
mva_prop_id2 varchar(4) NULL,
mva_prop_net varchar(5) NULL,
mva_prop_prd varchar(5) NULL,
mva_prop_eff varchar(50) NULL,
mva_prop_trm varchar(50) NULL,
mva_prop_pcp varchar(1) NULL,
mva_prop_prc varchar(6) NULL,
mva_prop_uac varchar(5) NULL,
mva_prop_disc decimal(5,2) NULL,
mva_prop_chgdt varchar(50) NULL,

wcp_prop_id1 varchar(8) NULL,
wcp_prop_id2 varchar(4) NULL,
wcp_prop_net varchar(5) NULL,
wcp_prop_prd varchar(5) NULL,
wcp_prop_eff varchar(50) NULL,
wcp_prop_trm varchar(50) NULL,
wcp_prop_pcp varchar(1) NULL,
wcp_prop_prc varchar(6) NULL,
wcp_prop_uac varchar(5) NULL,
wcp_prop_disc decimal(5,2) NULL,
wcp_prop_chgdt varchar(50) NULL,
)

------------------------------------------------------------------------------------------------------
PRINT '/** Step 02: ' + CAST(GETDATE() AS VARCHAR(25)) + ' Import Provider Data into dhs_MonthEndProvidersREVISED **/'

INSERT INTO dhs_MonthEndProvidersREVISED
(pro_id1, [Update Date], [Effective Date], [Termination Date],
[AHS], [DoctorID], [UPIN],
[Last Name], [First Name], [Middle Name], [Ext],
[Degree], [Degree2], [Social Security],
[Primary/Specialty], [DOB], [NPI],
[Spec 1], [Spec 2], [Spec 3],
[Tax ID], [Practice], [Address 1], [Address 2], [Address 3],
[City], [St], [Zip], [COUNTY], [Phone], [Fax #],
[Signed Contract], [Comment],
[email], [URL], [LATITUDE], [LONGITUDE],
pro_sex, pro_type, pro_geo, pro_altid, pro_eff, pro_trm,
pro_xtyp,pro_chgdt, pro_btag, pro_bref, pro_pcs,
pro_spec1, pro_spec2, pro_spec3, pro_phone,
dgh_prop_id1, dgh_prop_id2, dgh_prop_net, dgh_prop_prd,
dgh_prop_eff, dgh_prop_trm, dgh_prop_pcp, dgh_prop_prc, dgh_prop_uac, dgh_prop_cont,
dgh_prop_disc, dgh_prop_chgdt,
[PROVIDERTYPECODE], PROVIDERNAME
)

SELECT
pro.pro_id1,

[Update Date]=
Case CONVERT(VARCHAR(10), (pro.pro_chgdt), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (pro.pro_chgdt), 101)
End,

[Effective Date] =
Case CONVERT(VARCHAR(10), (dgh.prop_eff), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (dgh.prop_eff), 101)
End,

[Termination Date] =
Case CONVERT(VARCHAR(10), (dgh.prop_trm), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (dgh.prop_trm), 101)
End,

[AHS] =
CASE
WHEN dgh.prop_trm is null THEN 'X'
WHEN dgh.prop_trm = '03/23/1977' THEN 'X'
WHEN dgh.prop_trm = '' THEN 'X'
WHEN GetDate() BETWEEN dgh.prop_eff AND dgh.prop_trm THEN 'X'
--WHEN GetDate() > dgh.prop_trm THEN 'X3'
ELSE ''
END,
[DoctorID] =
CASE dgh.prop_cont
WHEN '' THEN RIGHT(dgh.prop_id1,6) + RIGHT(dgh.prop_id2,2)
ELSE dgh.prop_cont
END,
--dgh.prop_cont AS [DoctorID],
pro.pro_upin AS [UPIN],
[Last Name] =
CASE pro.pro_xtyp
WHEN 'ANCI' THEN pro.pro_office
WHEN 'HOSP' THEN pro.pro_office
ELSE (left(pro.pro_lname,case when charindex(' ',replace(pro.pro_lname,',',' '))>0 then charindex(' ',replace(pro.pro_lname,',',' '))-1 else LEN(pro.pro_lname) end))--as LASTNAME,
end,
case when charindex(' ',replace(pro.pro_lname,',',' '))>0 then substring(pro.pro_lname,charindex(' ',replace(pro.pro_lname,',',' '))+1,LEN(pro.pro_lname)) else null end as Ext,

--pro.pro_lname AS [Last Name],
pro.pro_fname AS [First Name], pro.pro_minit AS [Middle Name],
--'' AS [Ext], -- KZ confirmed this is not valued
pro.pro_degree AS [Degree],
'' AS [Degree2], -- KZ confirmed this is not valued
pro.pro_ssn AS [Social Security],
[Primary/Specialty] =
CASE pro.pro_xtyp
WHEN 'ANCI' THEN 'A'
WHEN 'BILL' THEN 'X'
WHEN 'EOTF' THEN 'X'

WHEN 'HOSP' THEN 'H'
WHEN 'PRIM' THEN 'S' --'P' KateZ: The only thing that should have a "P" is Family Practice, General Practice, Internal Medicine, & Pediatrics.
WHEN 'PROV' THEN 'S' --'P'
WHEN 'SPEC' THEN 'S'
ELSE 'X'
END, --pro.pro_type AS [Primary/Specialty],

DOB =
Case CONVERT(VARCHAR(10), (pro.pro_dob), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (pro.pro_dob), 101)
End,

pro.pro_npi AS NPI,
pro.pro_spec1 AS [Spec 1], pro.pro_spec2 AS [Spec 2], pro.pro_spec3 AS [Spec 3],
pro.pro_tax1 AS [Tax ID],
pro.pro_office AS [Practice], pro.pro_addr1 AS [Address 1], pro.pro_addr2 AS [Address 2],
'' AS [Address 3], -- KZ confirmed this is not valued
pro.pro_city AS [City], pro.pro_state AS [St], pro.pro_zip AS [Zip],
replace(pro_county,' COUNTY','') + ' COUNTY' AS 'County', --pro.pro_county AS [COUNTY],
pro.pro_phone AS [Phone], pro.pro_fax AS [Fax #],
'' AS [Signed Contract], -- KZ confirmed this is not valued
'' AS [Comment], -- KZ confirmed this is not valued
pro.pro_email AS [email], pro.pro_www AS [URL], pro.pro_lat AS [LATITUDE], pro.pro_lon AS [LONGITUDE],
pro.pro_sex, pro.pro_type, pro.pro_geo, pro.pro_altid,

[pro.pro_eff] =
Case CONVERT(VARCHAR(10), (pro.pro_eff), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (pro.pro_eff), 101)
End,


[pro.pro_trm] =
Case CONVERT(VARCHAR(10), (pro.pro_trm), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (pro.pro_trm), 101)
End,


pro.pro_xtyp,

[pro.pro_chgdt] =
Case CONVERT(VARCHAR(10), (pro.pro_chgdt), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (pro.pro_chgdt), 101)
End,

pro.pro_btag, pro.pro_bref, pro.pro_pcs, pro.pro_spec1, pro.pro_spec2, pro.pro_spec3, pro.pro_phone, dgh.prop_id1, dgh.prop_id2, dgh.prop_net, dgh.prop_prd, dgh.prop_pcp, dgh.prop_prc, dgh.prop_uac, dgh.prop_cont, dgh.prop_disc,

[dgh.prop_eff] =
Case CONVERT(VARCHAR(10), (dgh.prop_eff), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (dgh.prop_eff), 101)
End,

[dgh.prop_trm] =
Case CONVERT(VARCHAR(10), (dgh.prop_trm), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (dgh.prop_trm), 101)
End,

[dgh.prop_chgdt] =
Case CONVERT(VARCHAR(10), (dgh.prop_chgdt), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (dgh.prop_chgdt), 101)
End,

[PROVIDERTYPECODE] =
CASE pro.pro_xtyp
WHEN 'ANCI' THEN 'ANC'
WHEN 'BILL' THEN 'XX1'
WHEN 'EOTF' THEN 'XX2'
WHEN 'HOSP' THEN 'HOSP'
WHEN 'PRIM' THEN 'PHYS'
WHEN 'PROV' THEN 'PHYS'
WHEN 'SPEC' THEN 'PHYS'
ELSE 'XX3'
END,
[PROVIDERNAME] =
CASE pro.pro_xtyp
WHEN 'ANCI' THEN pro.pro_office
WHEN 'HOSP' THEN pro.pro_office
ELSE pro.pro_lname
END


FROM pro
JOIN prop dgh
ON pro.pro_id1 = dgh.prop_id1 AND dgh.prop_prd = 'DGH'
join pcsa
ON pro.pro_id1 = pcsa_id1 and pcsa_Stat NOT IN ('NOGOOD')

WHERE pro.pro_xtyp NOT IN ('BILL', 'EOTF')
AND LEFT(dgh.prop_cont,2) <> 'NP'

--AND pro.pro_lname = 'morris' AND pro.pro_fname = 'james'

------------------------------------------------------------------------------------------------------
PRINT '/** Step 03: ' + CAST(GETDATE() AS VARCHAR(25)) + ' Modify dhs_MonthEndProvidersREVISED DocID **/'
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[DoctorID] = 'H' + dhs_MonthEndProvidersREVISED.[DoctorID]
WHERE dhs_MonthEndProvidersREVISED.PROVIDERTYPECODE IN ('HOSP')
AND LEFT([DoctorID],1) <> 'H'
AND LEN([DoctorID]) > 0

UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[DoctorID] = 'A' + dhs_MonthEndProvidersREVISED.[DoctorID]
WHERE dhs_MonthEndProvidersREVISED.PROVIDERTYPECODE IN ('ANC')
AND LEFT([DoctorID],1) <> 'A'
AND LEN([DoctorID]) > 0

PRINT '/** Step 03a: Cleanup DocIDs **/'
UPDATE dhs_MonthEndProvidersREVISED
SET [DoctorID] = LEFT(DoctorID, LEN(DoctorID) - 1)
WHERE RIGHT(DoctorID, 1) NOT IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')

UPDATE dhs_MonthEndProvidersREVISED
SET [DoctorID] = LEFT(DoctorID, LEN(DoctorID) - 1)
WHERE RIGHT(DoctorID, 1) NOT IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')

UPDATE dhs_MonthEndProvidersREVISED
SET [DoctorID] = LEFT(DoctorID, LEN(DoctorID) - 1)
WHERE RIGHT(DoctorID, 1) NOT IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')

UPDATE dhs_MonthEndProvidersREVISED
SET [DoctorID] = LEFT(DoctorID, LEN(DoctorID) - 1)
WHERE RIGHT(DoctorID, 1) NOT IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')

UPDATE dhs_MonthEndProvidersREVISED
SET [DoctorID] = LEFT(DoctorID, LEN(DoctorID) - 1)
WHERE RIGHT(DoctorID, 1) NOT IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
/**
SELECT DoctorID, RIGHT(DoctorID, 1), LEFT(DoctorID, LEN(DoctorID) - 1)
FROM dhs_MonthEndProvidersREVISED
WHERE RIGHT(DoctorID, 1) NOT IN ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
**/

------------------------------------------------------------------------------------------------------

PRINT '/** Step 04: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with Billing Info **/'
UPDATE dhs_MonthEndProvidersREVISED
SET [Billing Name] = bill.pro_office,
[Billing Address] = bill.pro_addr1,
[Billing City] = bill.pro_city,
[Billing St] = bill.pro_state,
[Billing Zip] = bill.pro_zip,
[Billing Phone] = bill.pro_phone

FROM pro AS bill
WHERE dhs_MonthEndProvidersREVISED.pro_bref = bill.pro_id1
AND dhs_MonthEndProvidersREVISED.pro_btag = 'N'

------------------------------------------------------------------------------------------------------
PRINT '/** Step 05: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with Hospital Affiliations **/'
-- select * from pcsh
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Hospital 1] = PCSH_1.pcsh_ofna
FROM pcsh AS pcsh_1
WHERE dhs_MonthEndProvidersREVISED.pro_pcs = pcsh_1.pcsh_id1
AND pcsh_1.pcsh_what = 'PRIVIL'
AND pcsh_1.pcsh_id2 = '0001'

UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Hospital 2] = PCSH_2.pcsh_ofna
FROM pcsh AS pcsh_2
WHERE dhs_MonthEndProvidersREVISED.pro_pcs = pcsh_2.pcsh_id1
AND pcsh_2.pcsh_what = 'PRIVIL'
AND pcsh_2.pcsh_id2 = '0002'

UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Hospital 3] = PCSH_3.pcsh_ofna
FROM pcsh AS pcsh_3
WHERE dhs_MonthEndProvidersREVISED.pro_pcs = pcsh_3.pcsh_id1
AND pcsh_3.pcsh_what = 'PRIVIL'
AND pcsh_3.pcsh_id2 = '0003'

UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Hospital 4] = PCSH_4.pcsh_ofna
FROM pcsh AS pcsh_4
WHERE dhs_MonthEndProvidersREVISED.pro_pcs = pcsh_4.pcsh_id1
AND pcsh_4.pcsh_what = 'PRIVIL'
AND pcsh_4.pcsh_id2 = '0004'

UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Hospital 5] = PCSH_5.pcsh_ofna
FROM pcsh AS pcsh_5
WHERE dhs_MonthEndProvidersREVISED.pro_pcs = pcsh_5.pcsh_id1
AND pcsh_5.pcsh_what = 'PRIVIL'
AND pcsh_5.pcsh_id2 = '0005'

------------------------------------------------------------------------------------------------------
PRINT '/** Step 06: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with SPEC **/'
/**
########
Select * FROM valid WHERE val_type = '302' AND val_code = 'INT'

SELECT pro_spec1, [Spec 1], DoctorID, pro_id1 FROM dhs_MonthEndProvidersREVISED WHERE [Spec 1] = '' ORDER BY pro_spec1
########


SELECT [Spec 2], val_desc, val_type, val_code
FROM valid
INNER JOIN dhs_MonthEndProvidersREVISED
ON dhs_MonthEndProvidersREVISED.[Spec 2] = valid.val_code
AND valid.val_type = '302'
WHERE dhs_MonthEndProvidersREVISED.[Spec 2] <> ''
**/


UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Spec 1] = valid.val_desc
FROM valid
WHERE dhs_MonthEndProvidersREVISED.[Spec 1] = valid.val_code
AND dhs_MonthEndProvidersREVISED.[Spec 1] <> ''
AND valid.val_type = '302'


UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Spec 2] = valid.val_desc
FROM valid
WHERE dhs_MonthEndProvidersREVISED.[Spec 2] = valid.val_code
AND dhs_MonthEndProvidersREVISED.[Spec 2] <> ''
AND valid.val_type = '302'


UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Spec 3] = valid.val_desc
FROM valid
WHERE dhs_MonthEndProvidersREVISED.[Spec 3] = valid.val_code
AND dhs_MonthEndProvidersREVISED.[Spec 3] <> ''
AND valid.val_type = '302'


------------------------------------------------------------------------------------------------------
PRINT '/** Step 07: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with IPA **/'
--SELECT * FROM valid WHERE val_code = 'GRE'
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[IPA_PHO] = valid.val_desc
FROM prop
LEFT JOIN valid ON prop.prop_sys = valid.val_code AND val_type = '367'
WHERE dhs_MonthEndProvidersREVISED.dgh_prop_id1 = prop.prop_id1
AND valid.val_desc <> 'SYS AFFILIATE CODE'
AND dhs_MonthEndProvidersREVISED.dgh_prop_id2 = prop.prop_id2
-- UPDATE dhs_MonthEndProvidersREVISED SET [IPA_PHO] = NULL WHERE [IPA_PHO] = 'SYS AFFILIATE CODE'

------------------------------------------------------------------------------------------------------
PRINT '/** Step 08: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with Mental Health **/'
-- ANC/HOSP do not reference this field
-- X means no coverage, M = Mental HEalth, D = Dental
-- SELECT * FROM valid WHERE valid.val_type = '302' ORDER BY val_code
-- SELECT * FROM valid WHERE valid.val_type = '302' AND val_opt = 'M' ORDER BY val_code
UPDATE dhs_MonthEndProvidersREVISED
SET [Mental Health] = valid.val_opt
FROM valid
WHERE valid.val_type = '302'
AND dhs_MonthEndProvidersREVISED.pro_spec1 = valid.val_code
AND valid.val_opt <> '3L'
AND ([Mental Health] = '' OR [Mental Health] IS NULL)

UPDATE dhs_MonthEndProvidersREVISED
SET [Mental Health] = valid.val_opt
FROM valid
WHERE valid.val_type = '302'
AND dhs_MonthEndProvidersREVISED.pro_spec2 = valid.val_code
AND valid.val_opt <> '3L'
AND ([Mental Health] = '' OR [Mental Health] IS NULL)

UPDATE dhs_MonthEndProvidersREVISED
SET [Mental Health] = valid.val_opt
FROM valid
WHERE valid.val_type = '302'
AND dhs_MonthEndProvidersREVISED.pro_spec3 = valid.val_code
AND valid.val_opt <> '3L'
AND ([Mental Health] = '' OR [Mental Health] IS NULL)

UPDATE dhs_MonthEndProvidersREVISED
SET [Mental Health] = 'X'
WHERE ([Mental Health] = '' OR [Mental Health] IS NULL)

------------------------------------------------------------------------------------------------------
PRINT '/** Step 08b: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with [Primary/Specialty] **/'
--'P' KateZ: The only thing that should have a "P" is Family Practice, General Practice, Internal Medicine, & Pediatrics.
UPDATE dhs_MonthEndProvidersREVISED
SET [Primary/Specialty] = 'P'
WHERE dhs_MonthEndProvidersREVISED.[Primary/Specialty] = 'S'
AND dhs_MonthEndProvidersREVISED.[Spec 1] IN ('Family Practice', 'General Practice', 'Internal Medicine', 'Pediatrics')

UPDATE dhs_MonthEndProvidersREVISED
SET [Primary/Specialty] = 'P'
WHERE dhs_MonthEndProvidersREVISED.[Primary/Specialty] = 'S'
AND dhs_MonthEndProvidersREVISED.[Spec 2] IN ('Family Practice', 'General Practice', 'Internal Medicine', 'Pediatrics')

UPDATE dhs_MonthEndProvidersREVISED
SET [Primary/Specialty] = 'P'
WHERE dhs_MonthEndProvidersREVISED.[Primary/Specialty] = 'S'
AND dhs_MonthEndProvidersREVISED.[Spec 3] IN ('Family Practice', 'General Practice', 'Internal Medicine', 'Pediatrics')


------------------------------------------------------------------------------------------------------
PRINT '/** Step 09: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with DGH **/'
-- SELECT top 50 * FROM prop --prop_pcp = A prop_prc=%CHRGS prop_disc = 80.00
-- DocID = 322530 20%
-- DocID = 5009790 20%
-- DocID = 322530 20%
-- DocID = 205150 20%
-- SELECT * FROM prop WHERE prop_id1 IN ('00098380', '00098410')
-- SELECT DISTINCT prop_uac FROM prop
/** changed 20061115 JGH
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Fee Schedule] =
CASE dgh_prop_prc
WHEN '%CHRGS' THEN CAST(dgh_prop_disc AS VARCHAR(6))
WHEN 'PHYFEE' AND (dgh_prop_uac <> '' OR dgh_prop_uac is null) THEN dgh_prop_uac
ELSE 'X'
END
WHERE dhs_MonthEndProvidersREVISED.PROVIDERTYPECODE IN ('PHYS')
**/
-- %CHRGS always uses dgh_prop_disc
/** removed 2006.11.20 JGH
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Fee Schedule] = CAST(dgh_prop_disc AS VARCHAR(6))
WHERE dhs_MonthEndProvidersREVISED.PROVIDERTYPECODE IN ('PHYS')
AND dgh_prop_prc = '%CHRGS'

-- PHYFEE is a medtalk that will use Fee Schedule if populated otherwise DIscount
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Fee Schedule] =
CASE dgh_prop_uac
WHEN '' THEN dgh_prop_uac
WHEN NULL THEN dgh_prop_uac
ELSE CAST(dgh_prop_disc AS VARCHAR(6))
END
WHERE dhs_MonthEndProvidersREVISED.PROVIDERTYPECODE IN ('PHYS')
AND dgh_prop_prc = 'PHYFEE'

-- Any other MedTalk gets an 'X'
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Fee Schedule] = 'X'
WHERE dhs_MonthEndProvidersREVISED.PROVIDERTYPECODE IN ('PHYS')
AND dgh_prop_prc NOT IN ('PHYFEE', '%CHRGS')

--




-- SELECT distinct dgh_prop_uac, dgh_prop_prc, dgh_prop_disc FROM dhs_MonthEndProvidersREVISED WHERE PROVIDERTYPECODE IN ('PHYS')
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Fee Schedule] =
CASE dgh_prop_prc
WHEN '%CHRGS' THEN CAST(dgh_prop_disc AS VARCHAR(6))
WHEN 'PHYFEE' THEN dgh_prop_uac
ELSE 'X'
END
WHERE dhs_MonthEndProvidersREVISED.PROVIDERTYPECODE IN ('ANC')

UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Fee Schedule] =
CASE dgh_prop_prc
WHEN '%CHRGS' THEN CAST(dgh_prop_disc AS VARCHAR(6))
WHEN 'PHYFEE' THEN dgh_prop_uac
ELSE 'X'
END
WHERE dhs_MonthEndProvidersREVISED.PROVIDERTYPECODE IN ('HOSP')
**/

-- new 2006.11.20
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Fee Schedule] =
CASE LEFT(dgh_prop_prc, 6)
WHEN '%CHRGS' THEN CAST(dgh_prop_disc AS VARCHAR(6))
WHEN 'PHYFEE' THEN dgh_prop_uac
ELSE 'X'
END

-- handle PHYFEE but dgh_prop_disc
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Fee Schedule] = CAST(dgh_prop_disc AS VARCHAR(6))
-- WHERE dgh_prop_prc = 'PHYFEE' AND ([Fee Schedule] <> '' OR [Fee Schedule] is null)
WHERE dgh_prop_prc = 'PHYFEE' AND [FEE SCHEDULE] = ''

-- SELECT DISTINCT [Fee Schedule] FROM dhs_MonthEndProvidersREVISED
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Fee Schedule] =
CASE [Fee Schedule]
WHEN 'A' THEN 'A'
WHEN 'BCD' THEN 'B'
WHEN 'E' THEN 'E'
WHEN 'F' THEN 'F'
WHEN 'G' THEN 'G'
WHEN 'H' THEN 'H'
WHEN 'I' THEN 'I'
WHEN 'J' THEN 'J'
WHEN 'K' THEN 'K'
WHEN 'L' THEN 'L'
WHEN 'M' THEN 'M'
WHEN 'N' THEN 'N'

WHEN 'X' THEN 'X'

--WHEN '0.00' THEN '100' removed 2006.11.21 per KateZ
WHEN '10.00' THEN '90'
WHEN '15.00' THEN '85'
WHEN '25.00' THEN '75'
WHEN '30.00' THEN '70'
WHEN '35.00' THEN '65'
WHEN '40.00' THEN '60'
WHEN '50.00' THEN '50'
WHEN '55.00' THEN '45'
WHEN '58.00' THEN '42'
WHEN '60.00' THEN '40'
WHEN '62.00' THEN '38'
WHEN '64.00' THEN '36'
WHEN '65.00' THEN '35'
WHEN '67.00' THEN '33'
WHEN '70.00' THEN '30'
WHEN '75.00' THEN '25'
WHEN '77.00' THEN '23'
WHEN '78.00' THEN '22'
WHEN '80.00' THEN '20'
WHEN '83.00' THEN '17'
WHEN '85.00' THEN '15'
WHEN '87.00' THEN '13'
WHEN '88.00' THEN '12'
WHEN '90.00' THEN '10'
WHEN '92.00' THEN '08'
WHEN '93.00' THEN '07'
WHEN '95.00' THEN '05'
WHEN '96.00' THEN '04'
WHEN '97.00' THEN '03'
WHEN '98.00' THEN '02'
WHEN '99.00' THEN '01'
WHEN '100.00' THEN '00'
ELSE 'ZZ'
END

--WHERE dgh_prop_prc = '%CHRGS'

------------------------------------------------------------------------------------------------------
PRINT '/** Step 10: ' + CAST(GETDATE() AS VARCHAR(25)) + ' CREATE dhs_prop for processing with MVA/WCP **/'
if exists (
select *
from dbo.sysobjects
where id = object_id(N'[dbo].[dhs_Prop]')
and OBJECTPROPERTY(id, N'IsTable') = 1)
drop table [dbo].[dhs_Prop]
--
CREATE TABLE dhs_Prop
(

prop_id1 varchar(8) NULL,
prop_id2 varchar(4) NULL,
prop_net varchar(5) NULL,
prop_prd varchar(5) NULL,
prop_eff datetime NULL,
prop_trm datetime NULL,
prop_pcp varchar(1) NULL,
prop_prc varchar(6) NULL,
prop_uac varchar(5) NULL,
prop_disc decimal(5,2) NULL,
prop_chgdt datetime NULL
)
--
INSERT INTO dhs_Prop ( prop_id1, prop_id2, prop_net, prop_prd, prop_eff, prop_trm,
prop_pcp, prop_prc, prop_uac, prop_disc, prop_chgdt )
SELECT prop_id1, prop_id2, prop_net, prop_prd, prop_eff,
CASE prop_trm
WHEN '' THEN '12/31/9999'
WHEN '3/23/1977' THEN '12/31/9999'
ELSE prop_trm
END,
prop_pcp, prop_prc, prop_uac, prop_disc, prop_chgdt
FROM prop

-- 2006.11.20 SETS UP mva AND wc PROCESS
UPDATE dhs_MonthEndProvidersREVISED
SET dgh_prop_trm = '12/31/9999'
WHERE dgh_prop_trm = ''
OR dgh_prop_trm IS NULL
OR dgh_prop_trm = '3/23/1977'

------------------------------------------------------------------------------------------------------
PRINT '/** Step 11: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with MVA **/'
UPDATE dhs_MonthEndProvidersREVISED
SET [mva_prop_id2] = (
SELECT TOP 1 prop_id2
FROM dhs_prop
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = dhs_prop.prop_id1 --
AND dhs_MonthEndProvidersREVISED.dgh_prop_net = dhs_prop.prop_net -- same network product
AND dhs_prop.prop_prd = 'MVA' -- limit to MVA products
AND dhs_prop.prop_eff
BETWEEN dhs_MonthEndProvidersREVISED.dgh_prop_eff
AND dhs_MonthEndProvidersREVISED.dgh_prop_trm
ORDER BY prop_trm DESC
)
--
UPDATE dhs_MonthEndProvidersREVISED
SET mva_prop_id1 = dhs_MonthEndProvidersREVISED.pro_id1,
mva_prop_net = prop_net,
mva_prop_prd = prop_prd,
mva_prop_eff = prop_eff,
mva_prop_trm = prop_trm,
mva_prop_pcp = prop_pcp,
mva_prop_prc = prop_prc,
mva_prop_uac = prop_uac,
mva_prop_disc = prop_disc,
mva_prop_chgdt = prop_chgdt
FROM dhs_prop
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = dhs_prop.prop_id1
AND dhs_MonthEndProvidersREVISED.mva_prop_id2 = dhs_prop.prop_id2

--
UPDATE dhs_MonthEndProvidersREVISED
SET [MVA] = (
CASE
WHEN mva_prop_id2 = '' THEN 'N'
WHEN mva_prop_id2 IS NULL THEN 'N'
WHEN mva_prop_id2 <> '' AND mva_prop_trm = '' THEN 'Y'
WHEN mva_prop_id2 <> '' AND mva_prop_trm IS NULL THEN 'Y'
WHEN mva_prop_id2 <> '' AND mva_prop_trm = '12/31/9999' THEN 'Y'
WHEN mva_prop_id2 IS NOT NULL AND mva_prop_trm = '' THEN 'Y'
WHEN mva_prop_id2 IS NOT NULL AND mva_prop_trm IS NULL THEN 'Y'
WHEN mva_prop_id2 IS NOT NULL AND mva_prop_trm = '12/31/9999' THEN 'Y'
ELSE CAST(Month([mva_prop_trm]) AS VARCHAR(2)) + '/' + CAST(Day([mva_prop_trm]) AS VARCHAR(2)) + '/' + RIGHT(CAST(Year([mva_prop_trm]) AS VARCHAR(4)),2)

--CAST(mva_prop_trm AS VARCHAR(12))
END
)
-- SELECT MVA, mva_prop_id2, mva_prop_trm FROM dhs_MonthEndProvidersREVISED
/** removed 2006.11.07 JGH
UPDATE dhs_MonthEndProvidersREVISED
SET [MVA] = (

CASE
WHEN CAST(mva_prop_trm AS DateTime) <> CAST('12/31/9999' AS DateTime) THEN
CAST(Month([MVA]) AS VARCHAR(2)) + '/' +
CAST(Day([MVA]) AS VARCHAR(2)) + '/' +
RIGHT(CAST(Year([MVA]) AS VARCHAR(4)),2)
ELSE 'Y'
END
)
WHERE IsDate([MVA]) = 1
**/

------------------------------------------------------------------------------------------------------
PRINT '/** Step 12: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with [Workmen s Comp] **/'
UPDATE dhs_MonthEndProvidersREVISED
SET [wcp_prop_id2] = (
SELECT TOP 1 prop_id2
FROM dhs_prop
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = dhs_prop.prop_id1 --
AND dhs_MonthEndProvidersREVISED.dgh_prop_net = dhs_prop.prop_net -- same network product
AND dhs_prop.prop_prd = 'WCP' -- limit to WCP products
AND dhs_prop.prop_eff
BETWEEN dhs_MonthEndProvidersREVISED.dgh_prop_eff
AND dhs_MonthEndProvidersREVISED.dgh_prop_trm
ORDER BY prop_trm DESC
)

--
UPDATE dhs_MonthEndProvidersREVISED
SET wcp_prop_id1 = dhs_MonthEndProvidersREVISED.pro_id1,
wcp_prop_net = prop_net,
wcp_prop_prd = prop_prd,
wcp_prop_eff = prop_eff,
wcp_prop_trm = prop_trm,
wcp_prop_pcp = prop_pcp,
wcp_prop_prc = prop_prc,
wcp_prop_uac = prop_uac,
wcp_prop_disc = prop_disc,
wcp_prop_chgdt = prop_chgdt
FROM dhs_prop
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = dhs_prop.prop_id1
AND dhs_MonthEndProvidersREVISED.wcp_prop_id2 = dhs_prop.prop_id2

--
UPDATE dhs_MonthEndProvidersREVISED
SET [Workmen's Comp] = (
CASE
WHEN wcp_prop_id2 = '' THEN 'N'
WHEN wcp_prop_id2 IS NULL THEN 'N'
WHEN wcp_prop_id2 <> '' AND wcp_prop_trm = '' THEN 'Y'
WHEN wcp_prop_id2 <> '' AND wcp_prop_trm IS NULL THEN 'Y'
WHEN wcp_prop_id2 <> '' AND wcp_prop_trm = '12/31/9999' THEN 'Y'
WHEN wcp_prop_id2 IS NOT NULL AND wcp_prop_trm = '' THEN 'Y'
WHEN wcp_prop_id2 IS NOT NULL AND wcp_prop_trm IS NULL THEN 'Y'
WHEN wcp_prop_id2 IS NOT NULL AND wcp_prop_trm = '12/31/9999' THEN 'Y'
ELSE CAST(Month([wcp_prop_trm]) AS VARCHAR(2)) + '/' + CAST(Day([wcp_prop_trm]) AS VARCHAR(2)) + '/' + RIGHT(CAST(Year([wcp_prop_trm]) AS VARCHAR(4)),2)
END )

-- SELECT MVA, COUNt(MVA) FROM dhs_MonthEndProvidersREVISED GROUp BY MVA ORDER BY MVA


------------------------------------------------------------------------------------------------------
PRINT '/** Step 13: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with [Workmens Comp Fee Sch] **/'
-- [Workmen's Comp Fee Sch]
-- [Workmen's Comp]
UPDATE dhs_MonthEndProvidersREVISED SET [Workmen's Comp Fee Sch] = '' WHERE [Workmen's Comp] = 'N'

-- New 2006.11.20
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Workmen's Comp Fee Sch] =
CASE LEFT(wcp_prop_prc, 6)
WHEN '%CHRGS' THEN CAST(wcp_prop_disc AS VARCHAR(6))
WHEN 'PHYFEE' THEN wcp_prop_uac
ELSE 'X'
END
WHERE [Workmen's Comp] <> 'N'

-- handle PHYFEE but dgh_prop_disc
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Workmen's Comp Fee Sch] = CAST(wcp_prop_disc AS VARCHAR(6))
WHERE wcp_prop_prc = 'PHYFEE' AND [Workmen's Comp] <> 'N' AND [Workmen's Comp Fee Sch] = ''

-- SELECT DISTINCT [Fee Schedule] FROM dhs_MonthEndProvidersREVISED
UPDATE dhs_MonthEndProvidersREVISED
SET dhs_MonthEndProvidersREVISED.[Workmen's Comp Fee Sch] =
CASE [Workmen's Comp Fee Sch]
WHEN 'A' THEN 'A'
WHEN 'BCD' THEN 'B'
WHEN 'E' THEN 'E'
WHEN 'F' THEN 'F'
WHEN 'G' THEN 'G'
WHEN 'H' THEN 'H'
WHEN 'I' THEN 'I'
WHEN 'J' THEN 'J'
WHEN 'K' THEN 'K'
WHEN 'L' THEN 'L'
WHEN 'M' THEN 'M'
WHEN 'N' THEN 'N'

WHEN 'X' THEN 'X'

--WHEN '0.00' THEN '100' removed 2006.11.21 per KateZ
WHEN '10.00' THEN '90'
WHEN '15.00' THEN '85'
WHEN '25.00' THEN '75'
WHEN '30.00' THEN '70'
WHEN '35.00' THEN '65'
WHEN '40.00' THEN '60'
WHEN '50.00' THEN '50'
WHEN '55.00' THEN '45'
WHEN '58.00' THEN '42'
WHEN '60.00' THEN '40'
WHEN '62.00' THEN '38'
WHEN '64.00' THEN '36'
WHEN '65.00' THEN '35'
WHEN '67.00' THEN '33'
WHEN '70.00' THEN '30'
WHEN '75.00' THEN '25'
WHEN '77.00' THEN '23'
WHEN '78.00' THEN '22'
WHEN '80.00' THEN '20'
WHEN '83.00' THEN '17'
WHEN '85.00' THEN '15'
WHEN '87.00' THEN '13'
WHEN '88.00' THEN '12'
WHEN '90.00' THEN '10'
WHEN '92.00' THEN '08'
WHEN '93.00' THEN '07'
WHEN '95.00' THEN '05'
WHEN '96.00' THEN '04'
WHEN '97.00' THEN '03'
WHEN '98.00' THEN '02'
WHEN '99.00' THEN '01'
WHEN '100.00' THEN '00'
ELSE 'ZZ'
END
WHERE [Workmen's Comp] <> 'N'

------------------------------------------------------------------------------------------------------
PRINT '/** Step 15: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with Modalities **/'
/**
SELECT prou_type, prou_desc
FROM prou
GROUP BY prou_type, prou_desc
HAVING LEFT(prou_type, 1) = '*'

prou_type prou_desc
--------- --------------------
*XR X-RAY
*ECHO ECHOCARDIOGRAM
*NM NUCLEAR MEDICINE
*STRES STRESS TEST
*CT COMPUTERIZED TOMOGRA
*FLU FLUOROSCOPY
*DEXA DUAL ENERGY X-RAY AB
*PET POSITRON EMISSION TO
*MRA MAGNETIC RESONANCE A
*BD BONE DENSITY TEST
*MRI MAGNETIC RESONANCE I
*SPECT SPECTROSCOPY
*OMRI OPEN MAGNETIC RESONA
*MAM MAMMOGRAPHY
*US ULTRASOUND

(15 row(s) affected)

select top 20 *
FROM prou

--WHERE prou_type = '*xr'

WHERE prou_id = '00009885'

SELECT max(prou_line) from prou - 11
**/

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 1

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 2

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 3

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 4

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 5

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 6

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 7

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 8

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 9

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 10

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 11

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = [COMMENT] + [prou_type]
FROM prou
WHERE dhs_MonthEndProvidersREVISED.pro_id1 = prou.prou_id
AND LEFT(prou_type, 1) = '*'
AND prou_line = 12

UPDATE dhs_MonthEndProvidersREVISED
SET COMMENT = REPLACE([COMMENT], '*', ' ')
------------------------------------------------------------------------------------------------------
PRINT '/** Step 16: ' + CAST(GETDATE() AS VARCHAR(25)) + ' UPDATE dhs_MonthEndProvidersREVISED with clean NPI **/'
/**
SELECT pro_id1, NPI, LEN(NPI)
FROM DHS_MonthEndProviders
WHERE IsNumeric(NPI)=1
ORDER BY LEN(NPI) DESC

13,037 w/ 10 len
**/
UPDATE DHS_MonthEndProviders
SET NPI = ''
WHERE IsNumeric(NPI)<>1 OR LEN(NPI) < 10

dexter.knudson
Constraint Violating Yak Guru

260 Posts

Posted - 2008-07-29 : 23:35:15
It usually means you are copying one column/field to another column/field which has a different definition which is smaller
eg
declare @char_13 nvarchar(13)
create table test(char_13 nvarchar(13), char_5 nvarchar(5))
select @char_13 = '13 Characters'
insert into test (char_13, char_5) values (@char_13,@char_13)
select * from test
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-07-30 : 00:01:04
Make sure your table fields have enough length to accomodate the data you're trying to insert into them. The best method would be to declare fields as having the same length as that of source table from which you're trying to insert.
Go to Top of Page

werhardt
Constraint Violating Yak Guru

270 Posts

Posted - 2008-07-30 : 10:36:41
Is there an easier way of figuring this out? I have been working on this all morning. I am not sure what I did. The only thing that I did different this time is the Last name formula and the date to case statements, in the source field this was a datetime, we changed it to a varchar which did work. The last name was 40 but up upped that to 60



SELECT
pro.pro_id1,

[Update Date]=
Case CONVERT(VARCHAR(10), (pro.pro_chgdt), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (pro.pro_chgdt), 101)
End,

[Effective Date] =
Case CONVERT(VARCHAR(10), (dgh.prop_eff), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (dgh.prop_eff), 101)
End,

[Termination Date] =
Case CONVERT(VARCHAR(10), (dgh.prop_trm), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (dgh.prop_trm), 101)
End,

[AHS] =
CASE
WHEN dgh.prop_trm is null THEN 'X'
WHEN dgh.prop_trm = '03/23/1977' THEN 'X'
WHEN dgh.prop_trm = '' THEN 'X'
WHEN GetDate() BETWEEN dgh.prop_eff AND dgh.prop_trm THEN 'X'
--WHEN GetDate() > dgh.prop_trm THEN 'X3'
ELSE ''
END,
[DoctorID] =
CASE dgh.prop_cont
WHEN '' THEN RIGHT(dgh.prop_id1,6) + RIGHT(dgh.prop_id2,2)
ELSE dgh.prop_cont
END,
--dgh.prop_cont AS [DoctorID],
pro.pro_upin AS [UPIN],
[Last Name] =
CASE pro.pro_xtyp
WHEN 'ANCI' THEN pro.pro_office
WHEN 'HOSP' THEN pro.pro_office
ELSE (left(pro.pro_lname,case when charindex(' ',replace(pro.pro_lname,',',' '))>0 then charindex(' ',replace(pro.pro_lname,',',' '))-1 else LEN(pro.pro_lname) end))--as LASTNAME,
end,
case when charindex(' ',replace(pro.pro_lname,',',' '))>0 then substring(pro.pro_lname,charindex(' ',replace(pro.pro_lname,',',' '))+1,LEN(pro.pro_lname)) else null end as Ext,

--pro.pro_lname AS [Last Name],
pro.pro_fname AS [First Name], pro.pro_minit AS [Middle Name],
--'' AS [Ext], -- KZ confirmed this is not valued
pro.pro_degree AS [Degree],
'' AS [Degree2], -- KZ confirmed this is not valued
pro.pro_ssn AS [Social Security],
[Primary/Specialty] =
CASE pro.pro_xtyp
WHEN 'ANCI' THEN 'A'
WHEN 'BILL' THEN 'X'
WHEN 'EOTF' THEN 'X'

WHEN 'HOSP' THEN 'H'
WHEN 'PRIM' THEN 'S' --'P' KateZ: The only thing that should have a "P" is Family Practice, General Practice, Internal Medicine, & Pediatrics.
WHEN 'PROV' THEN 'S' --'P'
WHEN 'SPEC' THEN 'S'
ELSE 'X'
END, --pro.pro_type AS [Primary/Specialty],

DOB =
Case CONVERT(VARCHAR(10), (pro.pro_dob), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (pro.pro_dob), 101)
End,

pro.pro_npi AS NPI,
pro.pro_spec1 AS [Spec 1], pro.pro_spec2 AS [Spec 2], pro.pro_spec3 AS [Spec 3],
pro.pro_tax1 AS [Tax ID],
pro.pro_office AS [Practice], pro.pro_addr1 AS [Address 1], pro.pro_addr2 AS [Address 2],
'' AS [Address 3], -- KZ confirmed this is not valued
pro.pro_city AS [City], pro.pro_state AS [St], pro.pro_zip AS [Zip],
replace(pro_county,' COUNTY','') + ' COUNTY' AS 'County', --pro.pro_county AS [COUNTY],
pro.pro_phone AS [Phone], pro.pro_fax AS [Fax #],
'' AS [Signed Contract], -- KZ confirmed this is not valued
'' AS [Comment], -- KZ confirmed this is not valued
pro.pro_email AS [email], pro.pro_www AS [URL], pro.pro_lat AS [LATITUDE], pro.pro_lon AS [LONGITUDE],
pro.pro_sex, pro.pro_type, pro.pro_geo, pro.pro_altid,

[pro.pro_eff] =
Case CONVERT(VARCHAR(10), (pro.pro_eff), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (pro.pro_eff), 101)
End,


[pro.pro_trm] =
Case CONVERT(VARCHAR(10), (pro.pro_trm), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (pro.pro_trm), 101)
End,


pro.pro_xtyp,

[pro.pro_chgdt] =
Case CONVERT(VARCHAR(10), (pro.pro_chgdt), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (pro.pro_chgdt), 101)
End,

pro.pro_btag, pro.pro_bref, pro.pro_pcs, pro.pro_spec1, pro.pro_spec2, pro.pro_spec3, pro.pro_phone, dgh.prop_id1, dgh.prop_id2, dgh.prop_net, dgh.prop_prd, dgh.prop_pcp, dgh.prop_prc, dgh.prop_uac, dgh.prop_cont, dgh.prop_disc,

[dgh.prop_eff] =
Case CONVERT(VARCHAR(10), (dgh.prop_eff), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (dgh.prop_eff), 101)
End,

[dgh.prop_trm] =
Case CONVERT(VARCHAR(10), (dgh.prop_trm), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (dgh.prop_trm), 101)
End,

[dgh.prop_chgdt] =
Case CONVERT(VARCHAR(10), (dgh.prop_chgdt), 101)
WHEN '03/23/1977' THEN ''
else CONVERT(VARCHAR(10), (dgh.prop_chgdt), 101)
End,

[PROVIDERTYPECODE] =
CASE pro.pro_xtyp
WHEN 'ANCI' THEN 'ANC'
WHEN 'BILL' THEN 'XX1'
WHEN 'EOTF' THEN 'XX2'
WHEN 'HOSP' THEN 'HOSP'
WHEN 'PRIM' THEN 'PHYS'
WHEN 'PROV' THEN 'PHYS'
WHEN 'SPEC' THEN 'PHYS'
ELSE 'XX3'
END,
[PROVIDERNAME] =
CASE pro.pro_xtyp
WHEN 'ANCI' THEN pro.pro_office
WHEN 'HOSP' THEN pro.pro_office
ELSE pro.pro_lname
END


FROM pro
JOIN prop dgh
ON pro.pro_id1 = dgh.prop_id1 AND dgh.prop_prd = 'DGH'
join pcsa
ON pro.pro_id1 = pcsa_id1 and pcsa_Stat NOT IN ('NOGOOD')

WHERE pro.pro_xtyp NOT IN ('BILL', 'EOTF')
AND LEFT(dgh.prop_cont,2) <> 'NP'



quote:
Originally posted by visakh16

Make sure your table fields have enough length to accomodate the data you're trying to insert into them. The best method would be to declare fields as having the same length as that of source table from which you're trying to insert.

Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2008-07-30 : 10:54:25
Easier way is to concentrate on insert statements where you're trying to populate values to varchar fields. You need to make sure the values that you specify has lengths equal to or less than length of target field. Its very difficult for a third person to look into your code and spot the place especially without knowing your table structure details.
Go to Top of Page
   

- Advertisement -