我需要创建一个视图,以显示每种动物的类别,动物的类型以及准确的总数。
我得到重复的结果,总数未到1,类别显示不正确。
任何人都可以建议如何解决这些问题
CREATE VIEW vw_PetsPerType
AS
(
SELECT dbo.StockInfo.petQty, dbo.PetTypes.Category, dbo.Pets.Name
FROM dbo.StockInfo CROSS JOIN
dbo.PetTypes CROSS JOIN
dbo.Pets
)
(
SELECT COUNT(Pets.Qty) as 'Total', (Pets.Name), PetTypes.Category
FROM Pets, PetTypes
GROUP BY PetTypes.Category, pets.Name
)
GO
我希望这些类别能够匹配,例如“狗-哺乳动物”,“鸟-禽”和“兔子-啮齿动物”,以及每个类别的准确计数。
我要养狗
Total Animal Category
1 Bird Avians
1 Bird Mammals
1 Bird Rodent
1 Dog Avians
1 Dog Mammals
1 Dog Rodent
1 Rabbit Avians
1 Rabbit Mammals
1 Rabbit Rodent
答案 0 :(得分:0)
您正在使用CROSS JOIN,它将连接一个表中的每一行与另一表中的每一行。如果使用WHERE子句,则应消除重复项。
WHERE pets.stockinfokey = StockInfo .stockinfokey AND
pets.pettypekey = pettypes.pettypekey