Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.10.23;
Скачать: [xml.tar.bz2];

Вниз

Текст запроса.   Найти похожие ветки 

 
V-A-V ©   (2005-09-09 14:30) [0]

Народ помогите срставить запрос. Голова пухнет, ни как не соображу.
Задача:
Есть три таблицы Товары (Далее T), Заказы (далее З) и Список товаров по заказам (далее С).
Так вот нужно выбрать все З у которых в С хоть у одного товара количество превышает фактический остаток в Т, но по совокупности всех заказов.

Не знаю коломбур получился или нет, если, что не понятно спрашивайте.


 
Val ©   (2005-09-09 14:41) [1]

структуру таблиц, как минимум.


 
Fay ©   (2005-09-09 14:44) [2]

2 Val ©   (09.09.05 14:41) [1]
>> структуру таблиц, как минимум.
далее СТКМ 8)


 
V-A-V ©   (2005-09-09 14:47) [3]

> структуру таблиц, как минимум.

Товары: TovarId, Name, Ostatok
Заказы: ZakazId, Code
Список товаров по заказам: Id, ZakazId, TovarId, Kol

Это конечно не оригинальная структура но для решения задаяи я думаю пойдет.


 
Lexer ©   (2005-09-09 15:11) [4]

Примерно так
SELECT DISTINCT(Z.code)
FROM Список товаров по заказам C
INNER JOIN Заказы Z
ON C.ZakazId = Z.ZakazId
INNER JOIN Товары Т
ON C.TovarId = T.TovarId
WHERE C.Kol >T.Ostatok


 
Stanislav ©   (2005-09-09 15:12) [5]

Т.Е. Если на заказе 1 товара "А" 5 шт
         на заказе 2 товара "А" 7 шт
А остаток 10, то нужно выбрать заказы 1 и 2. Правильно?


 
V-A-V ©   (2005-09-09 15:21) [6]

> .Е. Если на заказе 1 товара "А" 5 шт на заказе 2 товара "А" 7 шт А остаток 10, то нужно выбрать заказы 1 и 2. Правильно?

Да правильно. Так и надо.


 
Stanislav ©   (2005-09-09 15:55) [7]

1-й запрос "З1": Select TovarID, F1=sum(kol) from C
2-й запрос "З2": Select T.TovarID from З1 inner join T
on T.TOVARID=З1.TOVARID
where F1>OSTATOK
3-й запрос: SELECT DISTINCT (C.KODZAK) FROM З2 INNER JOIN C on C.tovarID=З2.TOVARID


 
Lexer ©   (2005-09-09 16:01) [8]

Еще вариант, может прокатит, не проверял

SELECT DISTINCT Z.code
FROM Список товаров по заказам C
INNER JOIN Заказы Z
ON C.ZakazId = Z.ZakazId
INNER JOIN Товары Т
ON C.TovarId = T.TovarId
GROUP BY Z.code
HAVING SUM(C.Kol) >T.Ostatok


 
Lexer ©   (2005-09-09 16:03) [9]

сорри, вариант не подходит



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.10.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.054 c
1-1127921801
userrrrr
2005-09-28 19:36
2005.10.23
как опросить клавиотуру?


11-1109400580
NAGRIS
2005-02-26 09:49
2005.10.23
TKolTreeView


1-1127988919
Альф
2005-09-29 14:15
2005.10.23
Фильтрация списка строк. Как сделать ?


14-1127908554
NailMan
2005-09-28 15:55
2005.10.23
А Вирт-то почти наш(авиамоделисткий) человек!


3-1126606350
Aliv
2005-09-13 14:12
2005.10.23
работа с базой paradox через сеть





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский