2017-12-18 13 views
0

와 다음 그룹으로 돌아 가기 :SQL 쿼리 필드에서 데이터를 추출하고 계산하는 대신 텍스트, 다음과 같습니다 나는 두 개의 열이 테이블 청구라고 한 합계

ID          Details 
E4A02FB2-298B-4790-B01A-DCAE2B3CC0A2 {"Search":"Tint","Subject":"JAY PATEL","SubjectId":"35","SLW":"True","MN":"False","EPP":"False","ApproximateTotalRecords":"0"} 
164AD558-E3AF-4FB9-9CCF-3EB8FE7A02FE {"Search":"Tint","Subject":"Derel Borges","SubjectId":"TL-100317-9A3TG-FS-001","SLW":"True","MN":"True","EPP":"True","ApproximateTotalRecords":"0"} 
95133974-A169-4647-B176-E9F3CF1FFE26 {"Search":"Tint","Subject":"KRISTEN KiFL","SubjectId":"25517489","SLW":"True","MN":"False","EPP":"False","ApproximateTotalRecords":"0"} 
E4A02FB2-298B-4790-B01A-DCAE2B3CC0A2 {"Search":"Tint","Subject":"ASHLEY HARMN","SubjectId":"35","SLW":"True","MN":"False","EPP":"False","ApproximateTotalRecords":"0"} 
E4A02FB2-298B-4790-B01A-DCAE2B3CC0A2 {"Search":"Tint","Subject":"ZACHARY PRIDGEN","SubjectId":"35","SLW":"True","MN":"False","EPP":"False","ApproximateTotalRecords":"0"} 
95133974-A169-4647-B176-E9F3CF1FFE26 {"Search":"Tint","Subject":"GODFREY CREELEY","SubjectId":"27235440","SLW":"True","MN":"False","EPP (temp)":"False","ApproximateTotalRecords":"0"} 
E4A02FB2-298B-4790-B01A-DCAE2B3CC0A2 {"Search":"Tint","Subject":"FELICIA SMITH","SubjectId":"35","SLW":"True","MN":"False","EPP (temp)":"False","ApproximateTotalRecords":"0"} 
E4A02FB2-298B-4790-B01A-DCAE2B3CC0A2 {"Search":"Tint","Subject":"KIANA JOHN","SubjectId":"35","ApproximateTotalRecords":"0"} 
E4A02FB2-298B-4790-B01A-DCAE2B3CC0A2 {"Search":"Tint","Subject":"HU LI","SubjectId":"35","SLW":"True","MN":"False","EPP (temp)":"False","ApproximateTotalRecords":"0"} 
95133974-A169-4647-B176-E9F3CF1FFE26 {"Search":"Tint","Subject":"PAT REID","SubjectId":"26134607","SLW":"True","MN":"False","EPP (temp)":"False","ApproximateTotalRecords":"0"} 
E4A02FB2-298B-4790-B01A-DCAE2B3CC0A2 {"Search":"Tint","Subject":"JOHN RODRIGUEZ","SubjectId":"35","SLW":"True","MN":"False","EPP":"False","ApproximateTotalRecords":"0"} 
95133974-A169-4647-B176-E9F3CF1FFE26 {"Search":"Tint","Subject":"FAWN JOSEY","SubjectId":"27108394","SLW":"True","MN":"False","EPP (temp)":"False","ApproximateTotalRecords":"0"} 
E4A02FB2-298B-4790-B01A-DCAE2B3CC0A2 {"Search":"Tint","Subject":"OSCAR DELL","SubjectId":"35","SLW":"True","MN":"False","EPP (temp)":"False","ApproximateTotalRecords":"3"} 
E4A02FB2-298B-4790-B01A-DCAE2B3CC0A2 {"Search":"Tint","Subject":"SARAH SMITH","SubjectId":"35","SLW":"True","MN":"False","EPP":"False","ApproximateTotalRecords":"0"} 
164AD558-E3AF-4FB9-9CCF-3EB8FE7A02FE {"Search":"Tint","Subject":"KELLER SMITH","SubjectId":"35","SLW":"True","MN":"False","EPP":"False","ApproximateTotalRecords":"0"} 

내가 달성해야 할 것은 작성하는 것입니다을 각 레코드에서 True SLW, MN, EPP 및 EPP (임시)의 수를 추출한 다음 ID별로 개수로 반환하는 쿼리입니다.

그래서 이해를 돕기 위해, 내가 두 단계로 원하는 결과를 보여주지 :

쿼리는 먼저 달성해야합니다 : 내가 적절하게 구성하기 위해 테이블을 얻을 수 없습니다로 이미지를 용서해주십시오 읽기 목적 : enter image description here

모든 레코드에 4 개의 코드가 모두있는 것은 아닙니다. 코드가 존재하지 않으면 그 행에 대해 0으로 반환되기를 원합니다.

그리고이 후

, 나는 ID로 총 싶어 - 그래서이 쿼리의 최종 결과는 다음과 같습니다

ID          SLW MN EPP EPP (temp) 
E4A02FB2-298B-4790-B01A-DCAE2B3CC0A2 8 0 0 0 
164AD558-E3AF-4FB9-9CCF-3EB8FE7A02FE 2 1 1 0 
95133974-A169-4647-B176-E9F3CF1FFE26 4 0 0 0 

이, 그래서 희망 SQL 쿼리 경험이 내 수준에 매우 고급입니다 여기 누군가가 올바른 방향으로 나를 인도 할 수 있습니까?

감사합니다. 이 같은

답변

1

뭔가를 수행해야합니다

SELECT 
    ID 
    , SUM(CASE WHEN Details LIKE '%"SLW":"True"%' THEN 1 ELSE 0 END) SLW 
    , SUM(CASE WHEN Details LIKE '%"MN":"True"%' THEN 1 ELSE 0 END) MN 
    , SUM(CASE WHEN Details LIKE '%"EPP":"True"%' THEN 1 ELSE 0 END) EPP 
    , SUM(CASE WHEN Details LIKE '%"EPP (temp)":"True"%' THEN 1 ELSE 0 END) [EPP (temp)] 
FROM Billing 
GROUP BY ID 

그리고 더 많은 기본 결과 집합에 대한

:

SELECT 
    ID 
    , CASE WHEN Details LIKE '%"SLW":"True"%' THEN 1 ELSE 0 END SLW 
    , CASE WHEN Details LIKE '%"MN":"True"%' THEN 1 ELSE 0 END MN 
    , CASE WHEN Details LIKE '%"EPP":"True"%' THEN 1 ELSE 0 END EPP 
    , CASE WHEN Details LIKE '%"EPP (temp)":"True"%' THEN 1 ELSE 0 END [EPP (temp)] 
FROM Billing 
+0

크리스, 그것은 완벽하게 작동합니다. 이 문제에 대해 감사 드리며 SUM (사례) 구문을 배우는 것이 좋습니다. 다시 한번 감사드립니다. – Stpete111