Форум: "Базы";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];
ВнизПодскажите как по-проще сделать запрос! Найти похожие ветки
← →
BlackTiger (2003-02-01 15:31) [0]ХочУт видеть результат такой формы (список колонок слева направо):
[Товар]
[Продажа за тек. месяц (кол-во)]
[Продажа за месяц -1 (кол-во)]
[Продажа за месяц -2 (кол-во)]
[Продажа за месяц -3 (кол-во)]
[Наличие на складах (всего)]
[Наличие на складе "1"]
[Наличие на складе "2"]
[Наличие на складе "3"]
...
[Наличие на складе "N"]
При этом коды складов лежат в своей таблице и их кол-во ограничено только фантазией. Еще попутно не включать в результат товар, по которому все параметры (количества) равны нулю.
Таблицы такие (упрощенно):
[Товары]
[Склады]
[Наличие] ([Код Товара],[Код Склада],[Количество])
[Продажи] ([Код Товара],[Код Склада],[Дата],[Количество])
Вот сижу и думаю, то ли генерить SQL-запрос, то ли написать ХП. Дело в том, что я не мастер писать сложные ХП. И что лучше в плане производительности?
← →
Johnmen (2003-02-02 02:06) [1]В данном тяжелом случае можно только с помощью ХП.
:)
← →
BlackTiger (2003-02-02 13:00) [2]А как? Я уже сказал, что не мастер в сложных ХП.
Сейчас пытаюсь сделать запросом - бред полный получается. Он на каждую запись из продаж выдает все записи из склада - связь между таблицами ставится неправильно, получается связь Товар->Продажи->Склад, и нужно Товар->Продажи И Товар->Склад.
Вот текст моего пробного запроса
SELECT
i.[Category Code] AS [Item Category Code],
ic.[Category Type 1 Code] AS [Item Category Type 1 Code],
ic.[Category Type 2 Code] AS [Item Category Type 2 Code],
i.[Manufacturer Code],
i.[Code] AS [Item Code],
i.[Description] AS [Item Name],
(CASE s.[Period Code] WHEN 200301 THEN s.[Qty] ELSE 0 END) AS [Sale Data|CM Sold Qty],
(CASE s.[Period Code] WHEN 200212 THEN s.[Qty] ELSE 0 END) AS [Sale Data|CM-1 Sold Qty],
(CASE s.[Period Code] WHEN 200211 THEN s.[Qty] ELSE 0 END) AS [Sale Data|CM-2 Sold Qty],
(CASE s.[Period Code] WHEN 200210 THEN s.[Qty] ELSE 0 END) AS [Sale Data|CM-3 Sold Qty],
st.[Qty] AS [Stock Data|Total Qty|Quantity],
(CASE st.[Shop Code] WHEN "SHOP1" THEN st.[Qty] ELSE 0 END) AS [Stock Data|SHOP1|Qiantity]
(CASE st.[Shop Code] WHEN "SHOP2" THEN st.[Qty] ELSE 0 END) AS [Stock Data|SHOP2|Qiantity]
(CASE st.[Shop Code] WHEN "SHOP3" THEN st.[Qty] ELSE 0 END) AS [Stock Data|SHOP3|Qiantity]
FROM Items i
INNER JOIN dbo.Categories ic ON i.[Category Code] = ic.[Category Code]
LEFT OUTER JOIN dbo.Sales s ON i.[Code]=s.[Item Code]
LEFT OUTER JOIN dbo.[Current Stock] st ON i.[Code] = st.[Item Code]
WHERE
(i.[Code] = "155100")
AND (st.[Shop Code] IN ("SHOP1","SHOP2","SHOP3"))
AND (s.[Period Code] IN (200210,200211,200212,200301))
Что и где не так? Не пойму...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c