SELECT
[Buy]
,CASE WHEN [Buy] ='1001' AND [BuyDetail] ='' THEN 'Shop'
WHEN [Buy] ='1012' AND [BuyDetail] ='' THEN 'Room'
WHEN [Buy] ='1025' AND [BuyDetail] ='' THEN 'Making'
ELSE [BuyDetail]
END
FROM [dbo].[MoneyLog]
WHERE ISNUMERIC([BuyDetail]) = 0
AND [Buy] <> 1000
GROUP BY [Buy]
,CASE WHEN [Buy] ='1001' AND [BuyDetail] ='' THEN 'Shop'
WHEN [Buy] ='1012' AND [BuyDetail] ='' THEN 'Room'
WHEN [Buy] ='1025' AND [BuyDetail] ='' THEN 'Making'
ELSE [BuyDetail]
END
본 쿼리 인데
CASE WHEN [Buy] ='1001' AND [BuyDetail] ='' THEN 'Shop'
WHEN [Buy] ='1002' AND [BuyDetail] ='' THEN 'Room'
WHEN [Buy] ='1003' AND [BuyDetail] ='' THEN 'Making'
ELSE [BuyDetail]
END
여기서 Shop으로 넣어준 후 1차로 가공 후, 아래 쿼리처럼
CASE WHEN [Buy] ='Shop' THEN '1'
WHEN [Buy] ='Room' THEN '2'
WHEN [Buy] ='Making' THEN '3'
ELSE [BuyDetail]
END
해서,
최종적으로 파일에 Insert 할 땐 숫자로 표시하고 싶은데..
다중Case문으로 해도..If문으로 해도.............
자꾸 오류가 떠서.....(결국 삽질..ㅠㅠ)
다시말해 , Buy 안에 있는 Shop 이 1로, Room이 2로, Making이 3으로 바뀌었으면 좋겠습니다..
현재는 Buy 안에 1001, 1002, 1003으로 들어있는 상태인데 BuyDetail에 공백인 값도 있어서 1차로 넣어준 후, 바꾸어주려는데 잘 안되네요 ㅠㅜㅠ
그래서
이렇게 글 남깁니다ㅜㅜ
점심드시고....
알려주셨으면 좋겠습니다 ㅜㅜ
감사합니다
group by하신거 보니까 결과 중복이 있어서 하신거 같아서 하신거 같네요.
일단 생각나는대로 해보니까 나오긴 하는데 원하시는게 맞는진 모르겠네요.
select aa.Buy
, case when aa.buydetail = 'shop' then '1'
when aa.buydetail = 'room' then '2'
when aa.buydetail = 'making' then '3'
else 0 end
from (
select Buy
, case when Buy = 1001 and BuyDetail = '' then 'shop'
when Buy = 1012 and BuyDetail = '' then 'room'
when Buy = 1025 and BuyDetail = '' then 'making'
else buydetail end as buydetail
from BuyDetail
where ISNUMERIC(buydetail) = 0
) as aa
group by aa.Buy
, case when aa.buydetail = 'shop' then '1'
when aa.buydetail = 'room' then '2'
when aa.buydetail = 'making' then '3'
else 0 end