Cześć, jestem na początku mojej przygody z SQLem i napotkałem problem, którego nie mogę ruszyć. Potrzebuję procedury, która zwróci mi sprzedaż z tygodnia, dwóch tygodni i policzy pokrycie w dniach. Próbowałem napisać, ale podzapytania zwracają mi niestety tylko jeden wynik (TOP 1 dodane po błędzie: Msg 512, Level 16, State 1, Procedure str_zaap, Line 6 [Batch Start Line 0]
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.) Czy jest jakaś szansa na to, żeby podzapytanie zwracało więcej niż jeden wynik?
CREATE PROCEDURE str_zaap
@data datetime,
@WH nchar(20)
AS
BEGIN
SELECT DISTINCT
Stock.skuCode,
Stock.Qty AS 'Stan_magazynowy',
Stock.WH,
Cat.Cat1 AS 'Kategoria',
(SELECT TOP 1 sum(Sales.Qty) FROM SCRE.dbo.tSales AS Sales WHERE (Sales.Date between @data-6 and @data) GROUP BY sales.skuCode) AS '7_dni',
(SELECT TOP 1 sum(Sales.Qty) FROM SCRE.dbo.tSales AS Sales WHERE (Sales.Date between @data-13 and @data) GROUP BY sales.skuCode) AS '14-dni',
stock.qty/((SELECT TOP 1 sum(Sales.Qty) FROM SCRE.dbo.tSales AS Sales WHERE (Sales.Date between @data-13 and @data)GROUP BY sales.skuCode)/'14') AS 'Pokrycie'
FROM
SCRE.dbo.tStockPTK AS Stock,
SCRE.dbo.tSales AS Sales,
SCRE.dbo.tItems AS Items,
SCRE.dbo.tItemsCat AS Cat
WHERE
Stock.skuCode=Sales.skuCode AND
Stock.skuCode=Items.skuCode AND
Sales.skuCode=Items.skuCode AND
Cat.IdCat=Items.IdCat AND
Cat.Cat1=Items.Cat1 AND
Stock.WH = @WH
END