SQL Server peut-il renvoyer aucun enregistrement si un agrégat de groupe aboutit à zéro enregistrement au lieu d'un enregistrement unique avec des valeurs nulles et 0?La requête SQL Server renvoie-t-elle des enregistrements zéro à la place d'un seul enregistrement null pour un groupe non agrégé?
L'instruction SQL problème:
select
Max(InterfaceID), Count(*)
from
(select InterfaceID
from interface
where interfaceid = 99) as Interfaces
résultat Problème
+-------+---------+
| i_max | i_count |
+-------+---------+
| NULL | 0 |
+-------+---------+
Exemple si un groupe par spécifié
select
Max(InterfaceID), Count(*)
from
(select InterfaceID
from interface
where interfaceid = 99) as Interfaces
group by
interfaceid
Résultat:
+-------+---------+
| i_max | i_count |
+-------+---------+
Pouvez-vous obtenir le deuxième résultat avec la première requête, pas de groupe par spécifié?
Tout cela parce que le modèle Entity Framework et la gestion des données vide le tableau au lieu d'un enregistrement de tableau 1, mais de peu d'utilité.
Ajouter une clause having. Comme HAVING MAX (InterfaceID)> 0 ou quelque chose du genre, tout ce qui fonctionne pour vos données réelles. –
Les requêtes que vous avez passées ont des clauses GROUP BY et renvoient zéro ligne. Je suppose que vous vouliez omettre le GROUP BY dans la première requête, auquel cas il résume la sous-requête, et une seule ligne avec (null, 0) est le résultat correct. Pouvez-vous élaborer sur le problème d'EF auquel vous faites face? –
merci - supprimé GROUP BY sur la première requête. – Maze