|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.05.2010, 11:28 | #1 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
Запрос с условием
Таблица Access, создание запроса, в дальнейшем делается динамический запрос в Дельфи.
Есть связанные таблицы material, sodRash, sodRashDop, SodPrih, SodPrihDop. Предназначены для прихода и расхода материала. Привожу краткое содержимое, где PK-ключевое поле, FK-связанное по нему поле другой таблицы. Связь материала по расходу: Material (kodMaterial(PK), Name, Ostatok) связь один ко многим SodRash(KodSodRash(PK), KodMaterial(FK), Kol, Stoimost) связь один ко многим SodRashDop(KodRash(PK), KodSodRash(FK),DateRashod, OstatokRashod) Также есть другая связь по материалу для прихода: Material (kodMaterial(PK), Name, Ostatok) связь один ко многим SodPrih(KodSodPrih(PK), KodMaterial(FK), Kol, Stoimost) связь один ко многим SodPrihDop(KodPrih(PK), KodSodPrih(FK),DatePrihod, OstatokPrihod) Требуется создать запрос: Отображение наименование материала и Остаток (вычисляемый) за определенную дату по приходу. Остаток для материала вычисляется таким образом: За определенную <=дату суммируются все остатки прихода (OstatokPrih) для каждого определенного материала и вычитается из суммы остатков расхода (OstatokRash). Это делал через вложенный подзапрос, но в задаче стоит следующее условие, если данного материала нет в таблице расходов (то есть по нему не было расходов), то считать остатком поле из material.Ostatok. Как в запросе реализовать такую конструкцию условия? Пробовал сначала вычислить остаток для материалов, которые есть в расходе, а потом через UNION прибавить другой запрос для материалов, которых нет в расходе (но как найти?). Если есть идеи какие конструкции использовать при построенни данного запроса, то напишите, хотя бы схематично. Как правильно составить данную конструкцию?
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
05.05.2010, 14:19 | #2 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
Вообщем, сделал, вроде правильно работает:
Вычислил сначала отдельным запросом остаток прихода для которого есть записи в расходе, потом отдельным запросом для которых нет записей, и после объединил эти два запроса. На псевдокоде примерно так будет выглядеть Код:
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
05.05.2010, 15:58 | #3 |
Proffesional
Форумчанин
Регистрация: 18.11.2008
Сообщений: 417
|
думаю что в access нет.Вот если бы это была ms sql то другое дело
О, степь родимая, как я скучаю по тебе...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрос с условием отбора [Введите фамилию] | spets | Microsoft Office Access | 9 | 21.01.2014 02:02 |
Запрос с условием периода времени | Ksy | Microsoft Office Access | 8 | 06.05.2010 03:24 |
SQL запрос с условием | Veiron | SQL, базы данных | 4 | 30.03.2010 19:58 |
Ссумирование с условием | Dendy702200 | Microsoft Office Access | 2 | 26.12.2009 17:33 |
Запрос на удаление с условием | Dimok82 | SQL, базы данных | 1 | 13.03.2009 18:19 |