El error que recibe le indica que la columna CategoryID
en tu WHERE
la cláusula es ambigua, eso significa que el sistema tiene un problema para identificar la columna apropiada porque hay múltiples CategoryID
columnas.
Para solucionar este problema, use el alias para especificar qué columna desea usar para su WHERE
cláusula:
SELECT cat2.CategoryID AS CategoryID
,cat2.Name AS CategoryName
,COUNT(p.ProductID) AS CountProducts
FROM Category AS cat
INNER JOIN Category AS cat2 ON cat2.ParrentCategoryID = cat.CategoryID
INNER JOIN Products AS p ON p.CategoryID = cat2.CategoryID
WHERE cat.CategoryID = '876'
GROUP BY cat2.CategoryID, cat2.Name
ORDER BY cat2.Name
También cambié un poco la consulta para obtener el mismo resultado, pero en lugar de usar una combinación de LEFT JOIN
+ IN
cláusula + subconsulta, usé INNER JOIN
cláusulas. Con esta consulta solo necesita definir su CategoryID
deseado una vez y obtendrá automáticamente todas las categorías de niños.
No estoy seguro de que su consulta se ejecute correctamente porque está utilizando COUNT
función sin agrupar los resultados por CategoryID
...
Espero que esto te ayude.