-1
誰もこの問題を解決する方法を教えてもらえますか?サブクエリが1より大きい値を返しました。サブクエリがexpression.in SQLサーバーとして使用されるとき
ここに私のコードは
サブクエリです:私は次のために1トップの表示のみ1 productBarcode重複する値を選択した場合、私は、各storeNoための1000以上のproductBarcodeを持っているので、私はトップ100パーセントを使用
SELECT
A.StoreNo, C.[date], A.ProductBarCode, A.ProductQty
INTO
##inv1
FROM
#calender C
OUTER APPLY
(SELECT TOP 100 PERCENT *
FROM ##Temp I
WHERE I.Date < C.DATE
AND StoreNo IN (SELECT StoreNo FROM ##StoreList)
ORDER BY I.Date) A
OPTION (maxrecursion 0)
日。
Declare
@pheader nvarchar(Max), @sql_pivot nvarchar(max)
Begin
SELECT
@pheader = STUFF((SELECT distinct ',' + QUOTENAME([StoreNo])
FROM ##StoreList
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
--SET @pheader = LEFT(@pheader, LEN(@pheader) - 1)
SET @sql_pivot = 'SELECT *
FROM
(SELECT
S.[StoreNo], p.Date as Date,
p.ProductBarCode as ProductBarCode,
ISNULL(i.productqty - (SELECT ProductQty as runningsum
FROM #Stock st
WHERE st.date <= i.date
AND st.storeno = i.storeno
AND st.ProductBarCode = i.ProductBarCode), i.productqty) as ProductQty
FROM #inventory i
LEFT JOIN ##StoreList S ON S.StoreNo = i.StoreNo
LEFT JOIN #Stock st ON st.StoreNo = i.StoreNo AND st.ProductBarCode = i.ProductBarCode AND st.Date = i.Date
RIGHT JOIN ##product p ON i.Date = P.Date and p.ProductBarCode = i.ProductBarCode
-- where p.ProductBarCode IN(2300007115072,2300012213046,2300012712075)
GROUP BY S.storeNo, i.StoreNo, i.ProductBarCode, i.Date, p.ProductBarCode, p.Date, i.ProductQty) p
PIVOT (SUM(ProductQty)
FOR [StoreNo] IN ('+ @pheader+'))Pvt'
EXECUTE sp_executesql @sql_pivot
私はその、このエラーに
を示す10、より多く選択した場合、私は一度に3〜4 storeNoを得るカントサブクエリは複数の値を返しました。 サブクエリが、=、!<、< =、>、> =、またはサブクエリが式 として使用されている場合は、これは許可されません。
私はSQL Serverを使用しています。
エラーメッセージは、問題をきれいに説明しています。複数の値を返すサブクエリがあります。だから、副次的な選択はどこにありますか?問題がどこで起こっているのか正確に分かります。その部分を抽出して、そのクエリに対して複数の行を返すものを見つけ出します。 –