Форум: "Базы";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
Вниззапрос к таблице Найти похожие ветки
← →
Bob (2003-08-11 11:59) [0]Хелп, плиз. Есть таблица следующего вида
Date0 - дата получения заказа
Sum0 - сумма заказа
Date1 - дата выполнения заказа
Sum1 - сумма выполненного заказа
Необходимо сделать выборку за период, в которую входит (по датам) сумма принятых и сумма выполненных заказов
← →
Bob (2003-08-11 12:25) [1]Уточнение вопроса:
результат в формате
дата, сумма принятых заказов, сумма выполненных заказов
← →
Hawk2 (2003-08-11 12:27) [2]Общая сума принятых и выполненых заказов или как?
← →
HSolo (2003-08-11 12:31) [3]Какая дата - получения заказа или выполнения?
← →
Anatoly Podgoretsky (2003-08-11 12:38) [4]Пока ты не опишешь нормально задачу, тебе будет тяжело помочь, ответы будут вкривь и вкось, говорил же в чате, опиши нормально и примером данных и рузультата, который хочешь получить или просто своими слова опиши.
← →
Hawk2 (2003-08-11 12:42) [5]SELECT Date0, SUM(Sum0)
FFOM YourTableName
GROUP BY Date0 общая сума заказов по каждому дню. Аналогично будет общая сума выполненых заказов по каждому дню (только поля Date1, Sum1).
← →
Bob (2003-08-11 12:47) [6]таблица к вопросу
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
← →
Anatoly Podgoretsky (2003-08-11 12:58) [7]Примерно так
SELECT DateN,SUM(Sum0).SUM(Sum1) from table group by DateN order by DateN where DateN between интервал
← →
Hawk2 (2003-08-11 13:00) [8]Ну тогда добавь
SELECT Date0, SUM(Sum0)
FFOM YourTableName
WHERE (Date0<FirstDate) AND (Date0>SecondDate)
GROUP BY Date0
← →
HSolo (2003-08-11 13:29) [9]То, что Вы хотите, одним запросом, боюсь, не сделать
Вариант 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)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c