Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.20;
Скачать: CL | DM;

Вниз

Подскажите как по-проще сделать запрос!   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
14-63785
Демонов Е.В.
2003-02-03 12:48
2003.02.20
PASSWORD на BIOS


3-63492
Raz
2003-02-04 18:17
2003.02.20
Про печать TQuickRep.Print


7-63882
Michael Makushev
2002-12-23 16:37
2003.02.20
Компонента ComPort и Гипертерминал...


14-63806
blackweber
2003-02-03 19:48
2003.02.20
Монитор..


14-63850
JibSkeart
2003-02-02 13:13
2003.02.20
А помимо программирования сдеся увлекается музыкой ??