Mes résultats montrent les deux comptes les mêmes mais il devrait y avoir certains qui ont des comptes différents car CarCode est parfois nul.Compte basé sur Ou ne différencie pas le nombre
SELECT distinct car.carKey,
car.Weight,
car.CarCode,
COUNT(car.carKey)OVER(PARTITION BY car.carKey) AS TotalCarKeyCount,
COUNT(Case When (car.[Weight] IS not null) and (car.CarCode is null) as CarCountWithoutCode
then 0
else car.carKey End) OVER(PARTITION BY car.carKey) AS CarCount
from car
résultats montrent TotalCarKeyCount
et CarCountWithoutCode
toujours avec les mêmes chefs d'accusation comme la déclaration de cas ne fonctionne pas ou quelque chose.
L'instruction 'de case' ne fait rien parce que vous avez enveloppé dans une fonction' count() '. Par exemple, 'select count (select 0)' renvoie toujours '1'. Les deux chemins de l'instruction 'case' renvoient' 1' ... Il semble que vous devriez utiliser 'sum (cas où car.weight n'est pas nul et car.carcode est nul alors 0 sinon 1 fin)'. Si c'est le cas, je posterai ceci comme une réponse afin que vous puissiez le corriger :). –