Надеясь кто-то может помочь здесь, у меня есть следующие данныеSQL - Как возвращает значения вне запроса диапазона дат
Field 1 Field 2 Date Data
1 1 12/09/14 1
2 2 12/09/14 1
3 1 11/09/14 1
4 3 11/09/14 1
Мне нужно написать запрос SQL, который суммирует все «данные» на основе даты диапазон, а затем все, что соответствует в поле 2. Поэтому, если строка выходит за пределы диапазона дат, но значение в поле 2 соответствует другой строке, которая находится в диапазоне дат, она должна быть включена
Например, если я был чтобы запросить все за 12/09/14, я хочу видеть сумму строк 1, 2 и 3 .... поскольку строка 3 находится за пределами диапазона дат, но она соответствует строке 1 в столбце «Поле 2». Строка 4 не должна включаться, поскольку она находится за пределами диапазона и не имеет соответствующего значения в поле «0»
Любые идеи?
Я играл вокруг с вариациями запросов, но он либо выбирает только значения диапазона дат или все :(
EDIT:
Ok Я дал Раджеш ответить попробовать и это Безразлично» т, кажется, включают в себя данные за пределами диапазона дат. Я ожидал, что окончательная сумма в этом примере равной 3, но это только показывает 2
select sum(a) from (
select sum(batch_m2_nett) as a
from batch_inf
where batch_date = to_date('30/09/15','DD/MM/RR')
union
select sum(f2.batch_m2_nett) as a
from batch_inf f1
inner join batch_inf f2
on f1.batch_date = to_date('30/09/15','DD/MM/RR')
and f1.batch_opt_start_batch = f2.batch_opt_start_batch
and f2.batch_date != to_date('30/09/15','DD/MM/RR')
);
SUM(A)
------
2
SQL> select batch_no, batch_opt_start_batch, batch_date, batch_m2_nett from batch_inf where batch_no in (8811,8812,8814);
BATCH_NO BATCH_OPT_START_BATCH BATCH_DATE BATCH_M2_NETT
-------- --------------------- --------------- -------------
8811 8814 30-SEP-15 1
8812 8814 30-SEP-15 1
8814 8814 01-OCT-15 1
Пожалуйста, ваши попытки – Barranka
Извините должны были удалены, что линия ... мои «потуги», где просто базовая "if date = blah". Я предполагаю, что мне нужно передать значения в подзапрос, но я не уверен, как и как наилучшим образом –