Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-63745
race1
2003-02-05 11:27
2003.02.20
time


3-63508
lutikh
2003-02-02 22:31
2003.02.20
FilterOptions


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


3-63576
Said
2003-02-01 22:36
2003.02.20
Не подскажете как в DBGrid управлять передачей фокуса


14-63785
Демонов Е.В.
2003-02-03 12:48
2003.02.20
PASSWORD на BIOS





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский