그룹 집계가 null과 0이있는 단일 레코드 대신 0 레코드가되는 경우 SQL Server는 레코드를 반환하지 않습니다.집계 된 그룹에 대해 단일 null 레코드 대신 0 레코드를 반환하도록 SQL Server 쿼리 가져 오기?
문제 SQL 문 :
select
Max(InterfaceID), Count(*)
from
(select InterfaceID
from interface
where interfaceid = 99) as Interfaces
문제 결과
+-------+---------+
| i_max | i_count |
+-------+---------+
| NULL | 0 |
+-------+---------+
예하다면 지정하여 그룹
select
Max(InterfaceID), Count(*)
from
(select InterfaceID
from interface
where interfaceid = 99) as Interfaces
group by
interfaceid
결과 :
+-------+---------+
| i_max | i_count |
+-------+---------+
첫 번째 쿼리에서 두 번째 결과를 얻을 수 있습니까?
이것은 Entity Framework 모델과 배열 1 대신 빈 데이터를 처리하는 데이터가 기록하기는하지만 거의 사용되지 않기 때문입니다. 당신은 또한 GROUP BY()
을 추가 할 수 있습니다 HAVING
에 대한 대안으로
select Max(InterfaceID), Count(*)
from (
select InterfaceID from interface where interfaceid=99
) as Interfaces
having Max(InterfaceID) is not null
having 절을 추가하십시오. MAX (InterfaceID)> 0 또는 그 행을 따르는 것과 같이 실제 데이터에 적용되는 것이 무엇이든지간에. –
전달한 쿼리 모두 GROUP BY 절이 있으며 0 행을 반환합니다. 첫 번째 쿼리에서 GROUP BY를 생략하고 서브 쿼리를 요약하는 경우 (null, 0)의 단일 행이 올바른 결과라고 가정합니다. 직면 한 EF 문제에 대해 자세히 설명해 주시겠습니까? –
thanks - 첫 번째 쿼리에서 GROUP BY가 제거되었습니다. – Maze