Объединение без UNION

Kristallius
Дата: 20.11.2009 00:02:05
Есть две таблицы t1 и t2 с одинаковой структурой полей: dat[date], s1,s2[numeric(10:2)]
Количество записей в таблицах разные.
Даты частично пересекаются.
В одной таблице может быть несколько записей с одной датой.
Нужно получить итоговые записи по всем датам, поля s1 s2 обеих таблиц в итоговой должны быть суммарными. Самое главное условие - не использовать USING
результатирующа tt должна получиться такой (dat, sum(t1.s1), sum(t1.s2), sum(t2.s1), sum(t2.s2))
group by dat

например
t1
01.01.09 0 1
01.01.09 0 1
01.01.09 1 0

t2
01.01.09 7 3
02.01.09 5 6

результатирующая tt должна получиться такой
01.01.09 1 2 7 3
02.01.09 0 0 5 6

Помогите, пожалуйста
Kristallius
Дата: 20.11.2009 00:14:44
или такой вариант
две таблицы с одним полем даты. Как выбрать date из двух таблиц в одно поле без join? остальное попробую допетрикать сам
mds_world
Дата: 20.11.2009 00:40:51
select dat, sum(ss1), sum(ss2), sum(ss3), sum(ss4) from
(select dat, s1 as ss1, s2 as ss2, null as ss3, null as ss4 from t1
union all
select dat, null as ss1, null as ss2, s1 as ss3, s2 as ss4  from t2)
group by dat
mds_world
Дата: 20.11.2009 00:43:53
Виноват, заголовок не прочитал. А только это
Kristallius
Самое главное условие - не использовать USING

/// '[
Дата: 20.11.2009 00:59:52
судя по всему, вам нужна операция FULL OUTER JOIN
В Jet-SQL без UNION ее организовать.
Перелейте данные на сервер, поддерживающий FULL OUTER JOIN и постройте запрос к серверу.
Тогда получится "без union"
/// '[
Дата: 20.11.2009 01:04:40
пфуй.
так вам ишшо и штобы без join...
тут никак без ансамбля.
mds_world
Дата: 20.11.2009 01:11:19
Ну, вот так попробуйте
select q.f, p1.ss1 as ps1, p1.ss2 as ps2, p2.ss1 as ps3, p2.ss2 as ps4 from
(select  iif(t1.dat>= t2.dat, t1.dat, t2.dat) as f from t1,t2 group by  iif(t1.dat>= t2.dat, t1.dat, t2.dat)) q, 
(select dat, sum(s1) as ss1, sum(s2) as ss2 from t1 group by dat) p1,
(select dat, sum(s1) as ss1, sum(s2) as ss2 from t2 group by dat) p2,
q left join p1 on q.f=p1.dat,
q left join p2 on q.f=p2.dat
mds_world
Дата: 20.11.2009 01:14:16
Kristallius
Как выбрать date из двух таблиц в одно поле без join? остальное попробую допетрикать сам

select  iif(t1.dat>= t2.dat, t1.dat, t2.dat) as f from t1,t2 group by  iif(t1.dat>= t2.dat, t1.dat, t2.dat
/// '[
Дата: 20.11.2009 01:22:02
mds_world
Kristallius
Как выбрать date из двух таблиц в одно поле без join? остальное попробую допетрикать сам

select  iif(t1.dat>= t2.dat, t1.dat, t2.dat) as f from t1,t2 group by  iif(t1.dat>= t2.dat, t1.dat, t2.dat

если это без join, то как его зовут - драма или комедия?
mds_world
Дата: 20.11.2009 01:28:41
Декартово произведение не подойдет?