当我写下面的查询,该消息返回我怎样才能让左连接两个条件(ON子句)
消息512,级别16,状态1,行 子查询返回多个值。当子查询遵循=,!=,<,< =,>,> =或当子查询用作表达式时,这是不允许的。
请问如何解决。
SELECT PD.ProductID, PD.DesignID, PDCI.ColorID,
PD.TotalPrice, PD.PictureName, P.ProductTitle,
P.Quantity, P.Availability, P.TodayDeal,
P.NewArrival, P.Bestseller, P.Likes,
P.CreatedOn, D.Name, PDCI.ColorImage
FROM [Diwan].tbProductDesigns PD
LEFT JOIN [Diwan].tbProducts P
ON P.ProductID = PD.ProductID
LEFT JOIN [Design].tbDesignCover D
ON D.DesignID = PD.DesignID
LEFT JOIN [Diwan].tbProductDesignColorImages PDCI
ON PDCI.ProductID = PD.ProductID
AND PDCI.DesignID = PD.DesignID
WHERE PD.DesignID = 2
从评论:总价使用此功能计算列:
ALTER FUNCTION [dbo].[fnTotalProductPrice] (
@ProductID BIGINT,
@DesignID BIGINT
)
RETURNS MONEY
AS
BEGIN
RETURN (
SELECT P.Price + D.SellingPrice
FROM Diwan.tbProductDesigns PD
LEFT JOIN Diwan.tbProducts P ON PD.ProductID = P.ProductID
LEFT JOIN Design.tbDesignCover D ON PD.DesignID = D.DesignID
WHERE PD.ProductID = @ProductID
AND PD.DesignID = @DesignID
)
END
你的查询有没有子查询。因此,错误陈述似乎非常非常不可能。 –
是从视图中选择的那些对象中的任何一个,还是您将部分查询留给了您? – Dan
您发布的代码不会给出该错误。除非有任何计算中的列正在播放,或者任何源代码都隐藏在视图中。 –