jeudi 21 mars 2019

SQL Generate a Different Value for Each Output Row

I am running a query in which i need the SCORE to have a different output for each row. I am able to do it per execution but I have had no luck with RAND as I get a convert from varchar to int error. I need variable number per executrion within a range with no decimals. Is there anyway to do this? Any help is appreciated.

SELECT 'Row_Number^FEED_date^database_id^station_id^Form_Type^FBCS_CLAIM_ID^FBCS_LINE_ID^Pay^SCORE^score_date^reason_code^reason_description'
UNION ALL
SELECT
CAST(ROW_NUMBER() OVER ( ORDER BY ( SELECT 1 ) ) AS VARCHAR(20))  + '^' + 
          CONVERT(VARCHAR, getdate(), 112)+ '^' +  
          'FBCSTrans'+ '^' +  ---took off the 1 so if problems put it back
          stationnumber+ '^' +  
          case when claimtype = 0 then 'HCFA 1500' else 'UB 1450' end+ '^' + 
          CAST(Claims.claimid AS VARCHAR(50)) + '^' + 
          CAST(LineID AS VARCHAR(50)) + '^' + 
          'Y'+ '^' + 
          **RAND() * 100000 AS random_number** + '^' + 
          CONVERT(VARCHAR, getdate(), 112)+ '^' + 
          '' + '^' + ''
FROM Claims 
        JOIN ClaimLines on Claims.Claimid = Claimlines.Claimid 
        JOIN Facilities ON Claims.FacilityID = Facilities.FacilityID
WHERE  Claims.ClaimId IN (SELECT TOP(100000)ClaimId FROM CLAIMS WHERE Claims.RecordStatus = 55 and facilityid=40)




Aucun commentaire:

Enregistrer un commentaire