Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 389
от 16.10.2008, 11:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 421, Экспертов: 37
В номере:Вопросов: 1, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 146788: Уважаемые эксперты! Помогите плиз построить (с точки зрения Excell) безобидный запрос. Есть такой набор: Table1 - id, Наименование (таблица справочник наименований) Table2 - id, Дата, количество (таблица по расходу) Table3 - id, Дата,...

Вопрос № 146.788
Уважаемые эксперты!
Помогите плиз построить (с точки зрения Excell) безобидный запрос. Есть такой набор:

Table1 - id, Наименование (таблица справочник наименований)
Table2 - id, Дата, количество (таблица по расходу)
Table3 - id, Дата, Количество (таблица по приходу)

База акцессовская. Всё связано по id. Надо в гриде вывести Наименование | Приход | Расход за определённый период. Вот такой запрос малость подбрёхивает:

Код:
SELECT Table1.Наименование, Sum(Table3.Количество) AS Приход, Sum(Table2.Количество) AS Расход
FROM (Table1 LEFT JOIN Table2 ON Table1.key1 = Table2.id) LEFT JOIN Table3 ON Table1.key1 = Table3.id
WHERE (((Table3.Дата) Between #10/05/2008# And #10/06/2008#)) OR (((Table2.Дата) Between #10/05/2008# And #10/06/2008#))
GROUP BY Table1.Наименование
ORDER BY Table1.Наименование


Т.е. выводит в ячейку Расход значения, у которых дата совсем не та. Наставьте на путь истинный.
Отправлен: 11.10.2008, 10:41
Вопрос задал: Maximus777 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 11)

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Maximus777!
Конструкция с вложеными запросами обходит "логику зависимости" и отображает верный результат.

Евгений.

P.S. если задавать дату условия отбора в формате YYYY/M/D, не будет проблем с национальными настройками.

Приложение:

Ответ отправил: Тесленко Евгений Алексеевич (статус: Практикант)
Ответ отправлен: 11.10.2008, 22:45
Оценка за ответ: 5
Комментарий оценки:
Спасибо за пример. Да, теперь выдаёт как надо. Только пустые строки надо исключить.

Отвечает: Челноков Виктор Альбертович
Здравствуйте, Maximus777!
А почему в FROM (Table1 LEFT JOIN Table2 ON Table1.key1 = Table2.id) Вы пишите Table1.key1 поле же id, а так вроде все приавильно.
Ответ отправил: Челноков Виктор Альбертович (статус: 8-ой класс)
Ответ отправлен: 13.10.2008, 07:28
Оценка за ответ: 4
Комментарий оценки:
Да, в оригинале у меня там key1. id - это я для вопроса упрощал запись. Иначе запрос вообще бы не работал. А так запрос рабочий, только лишнего выдаёт. Вот в этом и есть проблема.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.6 от 14.10.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru
RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

В избранное