问题描述
如果我尝试执行它,就会出错:
create View vwEinzellieferant
as
Select P.supplierID,S.CompanyName,S.ContactName,S.Address + ' ' + S.City + ' ' + S.Region + ' ' + S.PostalCode + ' ' + S.Country,S.Phone
from suppliers S inner join Products P on S.supplierID = P.supplierID
group by P.supplierID,S.Address,S.City,S.Region,S.PostalCode,S.Country,S.Phone
having (Count(S.supplierID in (Select supplierID from Products))) > 2;
有一个问题,但我不知道是什么。 解释:查询应该创建一个视图,但只能与曾经在“产品”列表中的供应商一起使用。 有人可以帮我吗?
解决方法
似乎您需要重新排列HAVING
子句,以返回等于COUNT
的相关1
值,例如
SELECT P.SupplierID,S.CompanyName,S.ContactName,S.Address + ' ' + S.City + ' ' + S.Region + ' ' + S.PostalCode + ' ' +
S.Country,S.Phone
FROM Suppliers S
JOIN Products P
ON S.SupplierID = P.SupplierID
GROUP BY P.SupplierID,S.Address,S.City,S.Region,S.PostalCode,S.Country,S.Phone
HAVING ( SELECT COUNT(*) FROM Products WHERE SupplierID = S.ID ) = 1