저는 여기에서 내 문제와 같은 질문/대답을 연구했지만 발견 한 바가 없습니다.SQL - GROUP BY & HAVING COUNT 문제
SELECTING with multiple WHERE conditions on same column ---이 링크는 매우 가까이 있지만 내 문제에는 여전히 작동하지 않습니다.
문제 : 나는, 그것은 단지 EFTS 항목이 있는지 여부에 따라 만 RCC를 SEL_PROFILE_DETAIL_FK하여 고유의 출력을 개발해야
SEL_PRO_PMTMETHOD_PK SEL_PROFILE_DETAIL_FK PMT_TYPE PMT_STATUS
43827 342997 EFT G
43828 342997 EFT P
43829 342997 RCC
43826 342997 EFT
43776 342922 EFT
43777 342922 EFT G
43778 342922 EFT P
지불 방법 및 지불 상태를 수납하는 테이블 (빈 상태는 OK입니다) 한 항목 또는 EFT와 RCC 항목 모두.
난 단지 EFT 만 RCC
에 대한 쉬운 물건을 알아 냈하지만 난 FK 그룹화에서 EFT와 RCC 항목 BOTH가 있는지 알 수 있어야합니다. 지금까지내 코드 :
는SELECT pmt_type
FROM sel_pro_pmtmethod
WHERE sel_profile_detail_fk = '342997'
AND pmt_type IN ('EFT', 'RCC')
GROUP BY pmt_type
HAVING COUNT(distinct pmt_type) >= 1
이 코드는 위의 두 세트의 데이터에 대한 pmt_type을 다시 반환합니다. EFT와 RCC 모두 또는 EFT 만 있다면 상관 없습니다.
내가 "= 2"가되도록 HAVING COUNT 절을 변경하지만 그건 아무 것도 반환하지 않습니다 때문에 로타리 지역 사회 봉사단의 수 = 1과 EFTS의 = 3
하지만 내가 필요로하는 것은 BY이 WHERE/GROUP입니다/그룹화에 EFT 및 RCC 항목이있는 경우 시나리오가 참입니다. 누락 된 것이 있으면 실패합니다.
'COUNT를 갖는 그것은 당신이 실제로 둘 경우에만로 제한하지만, 둘 중 하나 또는 둘 모두가있는 경우 알고 싶어하지 않는 것처럼 소리와 당신이
conditional aggregation
과 같이 그렇게 할 수 있습니다 'DISTINCT'는 각 값의 1 번 발생 만 계산하므로 한 번 'EFT'와 'RCC'를 한 번만 계산하므로 원하는 결과를 얻을 수 있습니다.오, 그리고'GROUP BY SEL_PROFILE_DETAIL_FK'은'pmt_type'이 아닙니다 – MattHAVING COUNT = 2 일 때 클로저처럼 보입니다.이 부분은 간단한 쿼리로 변경할 수 있지만 SEL_PROFILE_DETAIL_FK와 PMT_TYPE의 두 열만 변경할 수 있습니다. SEL_PROFILE_DETAIL_FK 만 그룹화하고 where 절에 pmt_type IN ('EFT', 'RCC')을 넣습니다. 필요 없음. 하위 쿼리로 사용하고 SEL_PROFILE_DETAIL_FK를 사용하여 모든 쿼리에 연결/가입 – Girish
전자 송금 (EFT) 및 RCC는 ** 결제 유형 **입니까? 두 가지 이상의 지불 유형이있을 수 있으며이 두 가지 유형에만 관심이있는 경우 두 가지 지불 유형이있을 수있는 경우 두 가지 모두 정답 인 HAVING 절을 변경할 수 있습니다. (예 : pmt_type = 'EFT', 'x'끝)> 0 그리고 count (pmt_type = 'RCC', 'x'끝> – mathguy