Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 29.07.2009, 15:17   #1
Arkuz
Форумчанин
 
Аватар для Arkuz
 
Регистрация: 22.09.2007
Сообщений: 531
По умолчанию Проблемы с выборкой данных из нескольких таблиц

Здравствуйте.
Пишу базу для учёта хлебобулочных изделий. База сделана на Access. Необходимо сделать выборку для отчёта о расходе сырья для каждого вида продукции за определённый период.
В прикреплённом файле неполная схема данных, а только те таблицы, которые нужны для этого отчёта.

Что же должно получиться: Нужно подсчитать сколько сырья затрачено на производство каждого вида товара за определённый период.

Выглядит типа того:

Хлеб___________Мука 1500 г
_______________Соль 2000 г
_______________ и т.д.

Батон__________Мука 2000 г
_______________Соль 1450 г
_______________ и т.д.

Я сделал вывод такого отчёта, но код написан через задний проход . У меня используются запросы, промежуточные результаты сохраняются во временные таблицы, Потом собираются новые результаты, перемножаются поля, опять промежуточные результаты. И потом всё выбирается в отчёт с таблицы, которая формируется таким нехорошим способом. Время формирования отчёта не проверял даже на 100 записей, думаю точно пару секунд будет думать.

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

Посоветуйте, как лучше сделать этот отчёт... И можно ли эти все действия сделать с помощью SQL запросов? Я вот никак не придумаю как сделать.

Прикрепляю и сырую версию программы.
Программа при первом старте создаёт ветку в реестре HKCU\Software\Bakery и в ней хранятся разные данные программы.

Заранее благодарен...
Изображения
Тип файла: jpg Data_shem.JPG (26.2 Кб, 83 просмотров)
Вложения
Тип файла: rar Пекарня.rar (73.0 Кб, 11 просмотров)

Последний раз редактировалось Arkuz; 29.07.2009 в 15:31.
Arkuz вне форума Ответить с цитированием
Старый 29.07.2009, 15:46   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

видимо так
Код:
select 
  max(rp.name_product) name_product,
  max(m.name_material) name_material,
  sum(r.amount_material * b.!!!поле_в_котором_лежит_кол-во_проданных_позиций_этого_продукта_в_счете!!!) sum_amount_material
from
  material m,
  recipe r,
  realised_production rp,
  base b
where 0=0
  and m.code_material = r.code_material
  and r.code_product = rp.code_product
  and rp.code_product = b.code_product
  and b.date_waybill< :p1+1
  and b.date_waybill>= :p0
group by b.code_product, m.code_material
soleil@mmc вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрос на выборку из нескольких таблиц bullvinkle Microsoft Office Access 9 11.04.2012 04:35
Объединение нескольких таблиц в одну (по определенному параметру) iona БД в Delphi 13 18.06.2009 19:34
Экспорт нескольких таблиц из Excel в Access mirawoo Microsoft Office Access 1 19.03.2009 21:25
Сведение нескольких таблиц в одну Sega Microsoft Office Excel 3 05.08.2008 15:21