Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

запрос к таблице [D5, Paradox]


Bob ©   (2003-08-11 11:59:00) 

Хелп, плиз. Есть таблица следующего вида
Date0 - дата получения заказа
Sum0 - сумма заказа
Date1 - дата выполнения заказа
Sum1 - сумма выполненного заказа
Необходимо сделать выборку за период, в которую входит (по датам) сумма принятых и сумма выполненных заказов


HSolo   (2003-08-11 13:29:00) [1]

То, что Вы хотите, одним запросом, боюсь, не сделать

Вариант 1:

делаем врем.таблицу temp_table: fdate, sum0, sum1

1-й запрос:
insert into temp_table(fdate, sum0, sum1)
select date0, sum(sum0), 0 from YourTable
where date0 between интервал
group by date0

2-й запрос:
insert into temp_table(fdate, sum0, sum1)
select date1, 0, sum(sum1) from YourTable
where date1 between интервал
group by date1

3-й запрос:
select fdate, sum(sum0), sum(sum1)
from temp_table
group by fdate
order by fdate

Вариант 2: 1-й и 2-й запросы объединить в union; возможно, потребуется cast

Вариант 3:
если возможно - пересмотреть структуру таблицы, сделать что-то вроде:
fdate - дата
foper - вид операции (принято / выполнено)
fsum - сумма
Из такой таблицы то, что Вам надо, получится одним запросом (с union)


Hawk2   (2003-08-11 13:00:00) [2]

Ну тогда добавь
SELECT Date0, SUM(Sum0)
FFOM YourTableName
WHERE (Date0<FirstDate) AND (Date0>SecondDate)
GROUP BY Date0


Anatoly Podgoretsky   (2003-08-11 12:58:00) [3]

Примерно так
SELECT DateN,SUM(Sum0).SUM(Sum1) from table group by DateN order by DateN where DateN between интервал


Bob   (2003-08-11 12:47:00) [4]

таблица к вопросу
date0 Sum0 date1 sum1
01/08/03 100.00 05/08/03 150.00
01/08/03 50.00 03/08/03 50.00
03/08/03 200.00 07/08/03 190.00
02/08/03 185.00 05/08/03 185.00
05/08/03 120.00
результат
за период с 01/08/03 по 05/08/03
дата принято выполнено
01/08/03 150.00
02/08/03 185.00
03/08/03 200.00 50.00
05/08/03 120.00 335.00


Hawk2   (2003-08-11 12:42:00) [5]

SELECT Date0, SUM(Sum0)
FFOM YourTableName
GROUP BY Date0 общая сума заказов по каждому дню. Аналогично будет общая сума выполненых заказов по каждому дню (только поля Date1, Sum1).


Anatoly Podgoretsky   (2003-08-11 12:38:00) [6]

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


HSolo   (2003-08-11 12:31:00) [7]

Какая дата - получения заказа или выполнения?


Hawk2   (2003-08-11 12:27:00) [8]

Общая сума принятых и выполненых заказов или как?


Bob   (2003-08-11 12:25:00) [9]

Уточнение вопроса:
результат в формате
дата, сумма принятых заказов, сумма выполненных заказов


Наверх

Титульная страница Поиск, карта сайта Написать письмо