Помогите составить запрос
Добрый день всем.
Данность: есть две таблицы 1. "ДолгиКонтрагентов" - поля "id контрагента", "сумма долга", 2. "ДокументыОтгрузки" - поля "id документа", "дата отгрузки", "сумма отгрузки".
Задача: составить запрос, который возвращал бы выборку документов по контрагентам, при этом в выборку должны попасть документы сумма которых не превышает сумму долга контрагента
БД: MS SQL 2K
Подскажите, можно ли составить такой запрос
Данность: есть две таблицы 1. "ДолгиКонтрагентов" - поля "id контрагента", "сумма долга", 2. "ДокументыОтгрузки" - поля "id документа", "дата отгрузки", "сумма отгрузки".
Задача: составить запрос, который возвращал бы выборку документов по контрагентам, при этом в выборку должны попасть документы сумма которых не превышает сумму долга контрагента
БД: MS SQL 2K
Подскажите, можно ли составить такой запрос
Можно все, уважаемый почитайте тут
http://www.mysql.ru/docs/tkachenko/
а потом тут
http://www.mysql.ru/docs/pautov/app1.htm
и тут
http://www.activeserverpages.ru/Database/sql/select.asp
http://www.mysql.ru/docs/tkachenko/
а потом тут
http://www.mysql.ru/docs/pautov/app1.htm
и тут
http://www.activeserverpages.ru/Database/sql/select.asp
Навскидку:
select id_контрагента, id_документа
from ДолгиКонтрагентов, ДокументыОтгрузки
where ДокументыОтгрузки.СуммаОтгрузки<ДолгиКонтрагентов.СуммаДолга
order by id_контрагента
Угадал?
select id_контрагента, id_документа
from ДолгиКонтрагентов, ДокументыОтгрузки
where ДокументыОтгрузки.СуммаОтгрузки<ДолгиКонтрагентов.СуммаДолга
order by id_контрагента
Угадал?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Не угадал. Такой запрос вернет только те документы у которых сумма отгрузки < суммы долга, а мне нужно вернуть список документов у которыхХыиуду писал(а):Навскидку:
select id_контрагента, id_документа
from ДолгиКонтрагентов, ДокументыОтгрузки
where ДокументыОтгрузки.СуммаОтгрузки<ДолгиКонтрагентов.СуммаДолга
order by id_контрагента
Угадал?
SUM(ДокументыОтгрузки.СуммаОтгрузки)<ДолгиКонтрагентов.СуммаДолга
Я посмотрел ссылочки, но что-то не помогло. Можно "пальцем показать" и привести пример запросаDuncon писал(а):Можно все, уважаемый почитайте тут
http://www.mysql.ru/docs/tkachenko/
а потом тут
http://www.mysql.ru/docs/pautov/app1.htm
и тут
http://www.activeserverpages.ru/Database/sql/select.asp
Теряю логическое понимание - что все-таки должен делать запрос?Владимир писал(а):Не угадал. Такой запрос вернет только те документы у которых сумма отгрузки < суммы долга, а мне нужно вернуть список документов у которых
Sum(ДокументыОтгрузки.СуммаОтгрузки)<ДолгиКонтрагентов.СуммаДолга
Допустим, есть у нас два контрагента с долгами, скажем, 14 и 20. Есть документы с суммами 1, 3, 5, 8, 15. Что запрос должен вернуть?
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Контрагент | Документ | Долг | Сумма документа
К1 Д1 14 1
К1 Д2 14 3
К1 Д3 14 5
К2 Д5 20 15
К2 Д6 20 5
или
К1 Д3 14 5
К1 Д4 14 8
К2 Д5 20 15
К2 Д7 20 4
или
К1 Д1 14 1
К1 Д2 14 3
К1 Д4 14 8
комбинация выборки может зависеть от дополнительно накладываемых условий, но общий смысл, что общая сумма документов по контрагенту не должна превышать сумму долга
P.s. сорри что ответил только сегодня
К1 Д1 14 1
К1 Д2 14 3
К1 Д3 14 5
К2 Д5 20 15
К2 Д6 20 5
или
К1 Д3 14 5
К1 Д4 14 8
К2 Д5 20 15
К2 Д7 20 4
или
К1 Д1 14 1
К1 Д2 14 3
К1 Д4 14 8
комбинация выборки может зависеть от дополнительно накладываемых условий, но общий смысл, что общая сумма документов по контрагенту не должна превышать сумму долга
P.s. сорри что ответил только сегодня
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
я что-то упорно не вижу связи между этими таблицами...
какого-то конкретно?" писал(а):сумма которых не превышает сумму долга контрагента

исходных таблиц две:
1. Контрагент | Сумма долга
К1 | 14
К2 | 20
2. Контрагент | Документ отгрузки| Сумма документа
К1 | Д1 | 1
К1 | Д2 | 3
К1 | Д3 | 5
К1 | Д4 | 8
К2 | Д5 | 15
К2 | Д6 | 5
К2 | Д7 | 4
Меня интерисует можно ли получить одним запросом выборки которые я описывал выше
1. Контрагент | Сумма долга
К1 | 14
К2 | 20
2. Контрагент | Документ отгрузки| Сумма документа
К1 | Д1 | 1
К1 | Д2 | 3
К1 | Д3 | 5
К1 | Д4 | 8
К2 | Д5 | 15
К2 | Д6 | 5
К2 | Д7 | 4
Меня интерисует можно ли получить одним запросом выборки которые я описывал выше
Если я правильно помню философию Sql, она вообще не подразумевает, что по одному и тому же запросу можно получить такую-то таблицу ИЛИ сякую-то. По-моему, здесь нужно вытаскивать эти таблицы в программку на каком-нибудь алгоритмическом языке, а там уже их обрабатывать как душе угодно
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.