이것은 근사치와 함께 vlookup을 사용하여 Excel에서 쉽게 처리 할 수 있지만 어떤 이유로 든 SQl과 작동하지 않을 수 있습니다.이 어려운 방법으로 어떤 도움을 주시면 대단히 감사하겠습니다. 여기에 내가 무엇입니까 결과의 예입니다 : 아래 X와 Y 사이의 화폐 가치입니까?
Player ID ADT ADT Tier
103 31.25 11
112 6.03 NULL
114 498.26 7
117 1330.82 4
131 10.01 NULL
내가 사용하려고 코드입니다 :
여기
Player ID ADT ADT Tier
103 31.25 2
112 6.03 6
114 498.26 7
117 1330.82 4
131 10.01 NULL
는 샘플이 어떻게 보일지입니다.
Select S.Meta_ID as "Player ID"
,Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2) as ADT
,case
when cast(Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2)as varchar) between '3500' and '1000000' then '1'
when cast(Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2)as varchar) between '2000' and '3499.99' then '2'
when cast(Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2)as varchar) between '1500' and '1999.99' then '3'
when cast(Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2)as varchar) between '1000' and '1499.99' then '4'
when cast(Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2)as varchar) between '750' and '999.99' then '5'
when cast(Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2)as varchar) between '500' and '749.99' then '6'
when cast(Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2)as varchar) between '300' and '499.99' then '7'
when cast(Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2)as varchar) between '150' and '299.99' then '8'
when cast(Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2)as varchar) between '75' and '149.99' then '9'
when cast(Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2)as varchar) between '40' and '74.99' then '10'
when cast(Round(Sum(S.TWin)/Nullif(Count(Distinct S.GamingDate),0),2)as varchar) between '15' and '39.99' then '11'
Else null
End as "ADT Tier"
From dbo.CDS_STATDAY as S
Where S.GamingDate Between '06/1/2014' and '08/31/2014'
And S.IDType = 'P'
And S.StatType <> 'Poker'
Group by S.Meta_ID
CDS_STATDAY 테이블에서 샘플 데이터를 제공 할 수 있습니까? 또한 RDBMS는 무엇입니까? – radar
숫자 비교를 위해 varchar로 변환하는 이유는 무엇입니까? –
문제는 문자열로 변환 된 숫자를 비교하려고 시도하고 숫자 값만 사용하십시오. 또한 항상 "varchar"를 사용하여 변환 할 때 크기를 지정하면 매우 게으릅니다. "varchar"를 사용할 때의 기본 크기를 아십니까? 귀하의 데이터가 그것에 적합합니까? 크기를 추가하는 데는 많은 시간이 필요하지 않습니다 :'varchar (25)'. –