나는 (아래에 나열된) 훌륭한 쿼리를 사용하고 있습니다. 내가 가지고있는 문제는 우리가 두 가지 다른 날에 사건을 겪은 환자를 만났고, 나는 PATNUM
에 의해 그룹화했기 때문에 하나만 보여주고있다.여러 열을 사용하여 sql 및 group에서 대소 문자를 구분하는 방법
은 내가 PATNUM
및 SCHDT
이 경우마다 서로 다른
예 1을 계산하는 방법을 얻을 수 있습니다 : PATNUM 54321
두 번 계산해야하면서
PATNUM SCHDT
12345 30817
12345 30817
54321 30817
54321 30717
PATNUM 12345
SELECT ph.*, pi.*,
COUNT(DISTINCT CASE WHEN `SERVTYPE` IN ('INPT','INPFOP','INFOBS','IP') AND Complete ='7' THEN pi.PATNUM ELSE NULL END) AS count1,
COUNT(DISTINCT CASE WHEN `SERVTYPE` IN ('INPT','INPFOP','INFOBS','IP') AND Complete ='8' THEN pi.PATNUM ELSE NULL END) AS count2
FROM patientinfo as pi
INNER JOIN physicians as ph ON pi.SURGEON=ph.PName
WHERE PID NOT IN ('1355','988','767','1289','484','2784')
GROUP BY SURGEON
ORDER BY Dept,SURGEON ASC
대부분의 엔터프라이즈 SQL 엔진에서 오류가 발생합니다. 집계 함수의 일부가 아닌 모든 필드로 그룹화해야합니다. 이것은 mySQL이거나 구문에 의해 비표준 그룹을 지원하는 엔진이어야합니다. patnum과 schdt에 의해 그룹에 추가하면 가까운 수 있지만 여전히 그룹화되지 patentinfo 및 의사의 다른 데이터를 두려워 할 것입니다. – xQbert