Я этот запрос, который получаетОбъединения запросов в SQL Server
select top 20
Articulo.IdArticulo,
VentasT30 as VentasPorMes,
MovStockTotal.Stock
from
VentasMensuales
join
MovStockTotal on MovStockTotal.IdArticulo = Articulo.IdArticulo
where
Mes = 12 and IdDeposito = 30
order by
VentasT30 desc
В основном, он получает топ статей продаж в моей базе данных, их ежемесячные продажи (VentasT30, магазины в таблице VentasMensuales) и количество доступный для продажи в любом магазине (IdDeposito идентифицирует хранилище в таблице MovStockTotal, в настоящее время я проверяю только для магазина № 30).
Таблица MovStockTotal соответствует текущим номерам акций для каждой статьи в каждом магазине, поэтому каждая статья будет иметь одну строку для магазина в магазине (IdDeposito) № 30, один для акций в магазине № 40 (так далее) и один для основного депо, №2.
Я хочу также знать, что акции доступны в главном распределительном концентраторе для всех магазинов моего клиента. Он хранится в той же таблице (MovStockTotal) в IdDeposito = 2.
Я не уверен, как это сделать. Я попытался присоединиться к ним в качестве
SELECT
A.*, B.Stock
FROM
(select top 20
Articulo.IdArticulo, IdSeccion as Seccion,
Descripcion, VentasT30 as VentasPorMes,
MovStockTotal.Stock
from
VsBoremix.dbo.VentasMensuales
join
VsBoremix.dbo.Articulo on articulo.IdArticulo = VentasMensuales.IdArticulo
join
VsBoremix.dbo.MovStockTotal on MovStockTotal.IdArticulo = Articulo.IdArticulo
where
Mes = 12 and IdSeccion = 101 and IdDeposito = 30
order by
VentasT30 desc
GROUP BY [IdArticulo]) A
LEFT JOIN
(SELECT
[IdArticulo] Stock
where
IdDeposito = 2 as StockT20
FROM
VsBoremix.dbo.MovStockTotal
GROUP BY
[IdArticulo]) B ON A.[IdArticulo] = B.[IdArticulo]
Я скопировал структуру, что с другой такой же вопрос я нашел here, но я на самом деле не совсем уверен, что я делаю или что изменить там, чтобы сделать его работу ...
в частности, ошибки
Msg 156, Level 15, State 1, Line 7
Неправильный синтаксис около 'GROUP' ключевое слово.
Msg 156, Level 15, State 1, Line 9
Неверный синтаксис рядом с ключевым словом «как».
В случае, если не ясно, первый запрос, который уже работает, возвращает
IdArticulo VentasPorMes Stock
03-00043 53 12
03-00044 25 5
03-00049 41 22
Я хочу, чтобы показать
IdArticulo VentasPorMes Stock StockT20
03-00043 53 12 30
03-00044 25 5 25
03-00049 41 22 40
'SELECT [IdArticulo] запаса, где IdDeposito = 2, как StockT20 ОТ VsBoremix.dbo.MovStockTotal GROUP BY [IdArticulo]' не отформатированный правильно. где caluse находится до этого. Правильный синтаксис - это Select, FROM, WHERE, GROUP BY, HAVING. При всех подборах выбора производительность может стать проблемой с течением времени. Вероятно, лучший способ построить это. – xQbert