| Author |
Topic |
|
JJ297
Aged Yak Warrior
940 Posts |
Posted - 2008-07-16 : 08:53:36
|
| A claim will go to a certain department by looking at the last four numbers of the claim. To get the last four numbers of the claim I wrote this:Select SUBSTRING(claim,6,4)from Claim InfoThis works... what I now need help with is how to write this statement...if claim is between 0000-0908 then it is dept 1if claim is between 0909-1817 then it is dept 2if claim is between 1818-2726 then it is dept 3 etc...Do I put the select statement together with this above? |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-07-16 : 09:05:05
|
SELECT CASE WHEN RIGHT(Claim, 4) BETWEEN '0000' AND '0908' THEN 1WHEN RIGHT(Claim, 4) BETWEEN '0909' AND '1817' THEN 2WHEN RIGHT(Claim, 4) BETWEEN '1818' AND '2726' THEN 3ENDFROM Table1 E 12°55'05.25"N 56°04'39.16" |
 |
|
|
sakets_2000
Master Smack Fu Yak Hacker
1472 Posts |
Posted - 2008-07-16 : 09:05:48
|
| something like this :-select case when convert(int,right(claim,4)) between ... then 'dept1' when convert(int,right(claim,4)) between ... then 'dept2 ............ ............ else 'DepartmentNotFound' end as [Department]from TABLENAME |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2008-07-16 : 09:08:16
|
| select case when SUBSTRING(claim,6,4) between '0000' and '0908' then 1 end as dep1,case when SUBSTRING(claim,6,4) between '0909' and '1817' then 2 end as dep2,..from tableMadhivananFailing to plan is Planning to fail |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2008-07-16 : 09:09:52
|
Too slowMadhivananFailing to plan is Planning to fail |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-07-16 : 09:27:05
|
Must be wife asking you to fulfill the marital responsibilites  E 12°55'05.25"N 56°04'39.16" |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2008-07-16 : 09:28:04
|
quote: Originally posted by Peso Must be wife asking you to fulfill the marital responsibilites  E 12°55'05.25"N 56°04'39.16"
MadhivananFailing to plan is Planning to fail |
 |
|
|
JJ297
Aged Yak Warrior
940 Posts |
Posted - 2008-07-16 : 09:29:57
|
I hope not then he will be divored soon Thanks for the info going to try it now I'm sure I'll have more questions |
 |
|
|
JJ297
Aged Yak Warrior
940 Posts |
Posted - 2008-07-16 : 11:08:08
|
| Got another question...How do I get everything in the database and this select case to work together.@dept char(10),@FromDate datetime,@ToDate datetimeSELECT CASE WHEN RIGHT(Claim, 4) BETWEEN '0000' AND '0908' THEN 01WHEN RIGHT(Claim, 4) BETWEEN '0909' AND '1817' THEN 02WHEN RIGHT(Claim, 4) BETWEEN '1818' AND '2726' THEN 03WHEN RIGHT(Claim, 4) BETWEEN '2727' AND '3635' THEN 04WHEN RIGHT(Claim, 4) BETWEEN '3636' AND '4544' THEN 05WHEN RIGHT(Claim, 4) BETWEEN '4545' AND '5453' THEN 06WHEN RIGHT(Claim, 4) BETWEEN '5454' AND '6362' THEN 07WHEN RIGHT(Claim, 4) BETWEEN '6363' AND '7271' THEN 08WHEN RIGHT(Claim, 4) BETWEEN '7272' AND '8180' THEN 09WHEN RIGHT(Claim, 4) BETWEEN '8181' AND '9089' THEN 10WHEN RIGHT(Claim, 4) BETWEEN '9090' AND '9999' THEN 11ENDFROM ClaimInfowhere dept=@dept and pmtdate between @fromdate and @todateorder by pmtdate |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-07-16 : 11:13:44
|
[code]@Dept CHAR(10),@FromDate DATETIME,@ToDate DATETIMESELECT *FROM ClaimInfoWHERE CASE WHEN RIGHT(ClaimSSN, 4) BETWEEN '0000' AND '0908' THEN '01' WHEN RIGHT(ClaimSSN, 4) BETWEEN '0909' AND '1817' THEN '02' WHEN RIGHT(ClaimSSN, 4) BETWEEN '1818' AND '2726' THEN '03' WHEN RIGHT(ClaimSSN, 4) BETWEEN '2727' AND '3635' THEN '04' WHEN RIGHT(ClaimSSN, 4) BETWEEN '3636' AND '4544' THEN '05' WHEN RIGHT(ClaimSSN, 4) BETWEEN '4545' AND '5453' THEN '06' WHEN RIGHT(ClaimSSN, 4) BETWEEN '5454' AND '6362' THEN '07' WHEN RIGHT(ClaimSSN, 4) BETWEEN '6363' AND '7271' THEN '08' WHEN RIGHT(ClaimSSN, 4) BETWEEN '7272' AND '8180' THEN '09' WHEN RIGHT(ClaimSSN, 4) BETWEEN '8181' AND '9089' THEN '10' WHEN RIGHT(ClaimSSN, 4) BETWEEN '9090' AND '9999' THEN '11' END = @Dept AND PmtDate BETWEEN @FromDate AND @ToDateORDER BY PmtDate[/code]The best thing is to make an auxiliary table and store all "conversion" records there and make a JOIN against that table. E 12°55'05.25"N 56°04'39.16" |
 |
|
|
JJ297
Aged Yak Warrior
940 Posts |
Posted - 2008-07-16 : 11:26:13
|
| When I try what you sent I get:Must declare the scalar variable "@dept".How do I make an auxiliary table?@dept CHAR(9),@FromDate DATETIME,@ToDate DATETIMESELECT *FROM ClaimInfoWHERE CASE WHEN RIGHT(ClaimSSN, 4) BETWEEN '0000' AND '0908' THEN '01' WHEN RIGHT(ClaimSSN, 4) BETWEEN '0909' AND '1817' THEN '02' WHEN RIGHT(ClaimSSN, 4) BETWEEN '1818' AND '2726' THEN '03' WHEN RIGHT(ClaimSSN, 4) BETWEEN '2727' AND '3635' THEN '04' WHEN RIGHT(ClaimSSN, 4) BETWEEN '3636' AND '4544' THEN '05' WHEN RIGHT(ClaimSSN, 4) BETWEEN '4545' AND '5453' THEN '06' WHEN RIGHT(ClaimSSN, 4) BETWEEN '5454' AND '6362' THEN '07' WHEN RIGHT(ClaimSSN, 4) BETWEEN '6363' AND '7271' THEN '08' WHEN RIGHT(ClaimSSN, 4) BETWEEN '7272' AND '8180' THEN '09' WHEN RIGHT(ClaimSSN, 4) BETWEEN '8181' AND '9089' THEN '10' WHEN RIGHT(ClaimSSN, 4) BETWEEN '9090' AND '9999' THEN '11' END = @dept AND PmtDate BETWEEN @FromDate AND @ToDateORDER BY PmtDate |
 |
|
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2008-07-16 : 15:03:39
|
[code]CREATE PROCEDURE dbo.uspMyFirstStoredProcedure( @Dept CHAR(10), @FromDate DATETIME, @ToDate DATETIME)ASSET NOCOUNT ONSELECT *FROM ClaimInfoWHERE CASE WHEN RIGHT(ClaimSSN, 4) BETWEEN '0000' AND '0908' THEN '01' WHEN RIGHT(ClaimSSN, 4) BETWEEN '0909' AND '1817' THEN '02' WHEN RIGHT(ClaimSSN, 4) BETWEEN '1818' AND '2726' THEN '03' WHEN RIGHT(ClaimSSN, 4) BETWEEN '2727' AND '3635' THEN '04' WHEN RIGHT(ClaimSSN, 4) BETWEEN '3636' AND '4544' THEN '05' WHEN RIGHT(ClaimSSN, 4) BETWEEN '4545' AND '5453' THEN '06' WHEN RIGHT(ClaimSSN, 4) BETWEEN '5454' AND '6362' THEN '07' WHEN RIGHT(ClaimSSN, 4) BETWEEN '6363' AND '7271' THEN '08' WHEN RIGHT(ClaimSSN, 4) BETWEEN '7272' AND '8180' THEN '09' WHEN RIGHT(ClaimSSN, 4) BETWEEN '8181' AND '9089' THEN '10' WHEN RIGHT(ClaimSSN, 4) BETWEEN '9090' AND '9999' THEN '11' END = @Dept AND PmtDate BETWEEN @FromDate AND @ToDateORDER BY PmtDate[/code] E 12°55'05.25"N 56°04'39.16" |
 |
|
|
JJ297
Aged Yak Warrior
940 Posts |
Posted - 2008-07-17 : 08:12:59
|
| Thanks! I'm all set now. |
 |
|
|
|