이 두 문을 하나로 결합하려고 시도하지만 모든 시도가 실패했습니다! 병합 할 수 있습니까?TSQL - 하나의 TOP 및 COUNT SELECT
-- Is there a open answer?
SELECT CASE COUNT(tbl_Communication.pk_Communication) WHEN 0
THEN 0 ELSE 1 END AS hasAnsweredCom
FROM tbl_Communication
JOIN tbl_CommunicationElements ON tbl_CommunicationElements.pk_Communication = tbl_Communication.pk_Communication
WHERE tbl_Communication.pk_Ticket = @pk_Ticket
AND tbl_Communication.isClosed = 0
AND tbl_Communication.pk_CommunicationType = (SELECT pk_CommunicationType
FROM tbl_CommunicationType
WHERE name = 'query')
-- Get the answer text
SELECT TOP 1 tbl_Communication.subject AS hasAnsweredComStepName
FROM tbl_Communication
JOIN tbl_CommunicationElements ON tbl_CommunicationElements.pk_Communication = tbl_Communication.pk_Communication
WHERE tbl_Communication.pk_Ticket = @pk_Ticket
AND tbl_Communication.isClosed = 0
AND tbl_Communication.pk_CommunicationType = (SELECT pk_CommunicationType
FROM tbl_CommunicationType
WHERE name = 'query')
ORDER BY tbl_Communication.pk_Communication
'TOP 1 '로 무엇을 주문 했습니까? 또한'CASE WHEN EXISTS'를보기보다는 모든 것을 세고 0이 아닌 플래그를 설정하십시오. –
왜 주문 하시겠습니까? 두 명령문 모두 1 행/필드가됩니다. – MacTee
@Eichenwald : 네,하지만 두 번째 행에는 여러 행이 있음을 나타내는 'TOP 1'이 필요하므로 순서를 지정해야합니다. 그렇지 않으면 결과를 예측할 수 없습니다. 당신 (지금)이 중요하지 않더라도 '주문'을 생략하는 것은 나쁜 습관입니다. –