powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбор из двух таблиц
9 сообщений из 9, страница 1 из 1
Выбор из двух таблиц
    #39552582
Alex-777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет,

Такой вопрос, упростим задачу до двух таблиц

PLAN

id INT,
date DATE,
SUMMA DECIMAL

FAKT

id INT,
date DATE,
SUMMA DECIMAL

Не все даты есть в таблицах, может быть или план или факт или оба или нечего.
Нужно сделать запрос, результат которого будет типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
-----------+--------+--------
date       ! plan   ! fakt
-----------+--------+--------
05.11.2017 ! 100.00 ! 150.00  
-----------+--------+--------
06.11.2017 !        ! 150.00  
-----------+--------+--------
08.11.2017 ! 125.00 ! 
-----------+--------+--------
09.11.2017 !        ! 250.00  
-----------+--------+--------
13.11.2017 ! 100.00 ! 150.00 

Спасибо
...
Рейтинг: 0 / 0
Выбор из двух таблиц
    #39552592
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex-777Всем привет,

Такой вопрос, упростим задачу до двух таблиц

PLAN

id INT,
date DATE,
SUMMA DECIMAL

FAKT

id INT,
date DATE,
SUMMA DECIMAL

Не все даты есть в таблицах, может быть или план или факт или оба или нечего.
Нужно сделать запрос, результат которого будет типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
-----------+--------+--------
date       ! plan   ! fakt
-----------+--------+--------
05.11.2017 ! 100.00 ! 150.00  
-----------+--------+--------
06.11.2017 !        ! 150.00  
-----------+--------+--------
08.11.2017 ! 125.00 ! 
-----------+--------+--------
09.11.2017 !        ! 250.00  
-----------+--------+--------
13.11.2017 ! 100.00 ! 150.00 
Спасибо

select
z.date
,p.summa
,f.summa
from
(
select date
from PLAN
union
select date
from FACT
) z
left join PLAN p on p.date = z.date
left join FAKT f on f.date = z.date

...предпологается что ДАТЕ -- уникальное поле в обоих таблицах,
если нет -- надо дорабатывать условия....
...
Рейтинг: 0 / 0
Выбор из двух таблиц
    #39552594
Alex-777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbcAlex-777Всем привет,

Такой вопрос, упростим задачу до двух таблиц

PLAN

id INT,
date DATE,
SUMMA DECIMAL

FAKT

id INT,
date DATE,
SUMMA DECIMAL

Не все даты есть в таблицах, может быть или план или факт или оба или нечего.
Нужно сделать запрос, результат которого будет типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
-----------+--------+--------
date       ! plan   ! fakt
-----------+--------+--------
05.11.2017 ! 100.00 ! 150.00  
-----------+--------+--------
06.11.2017 !        ! 150.00  
-----------+--------+--------
08.11.2017 ! 125.00 ! 
-----------+--------+--------
09.11.2017 !        ! 250.00  
-----------+--------+--------
13.11.2017 ! 100.00 ! 150.00 
Спасибо

select
z.date
,p.summa
,f.summa
from
(
select date
from PLAN
union
select date
from FACT
) z
left join PLAN p on p.date = z.date
left join FAKT f on f.date = z.date

...предпологается что ДАТЕ -- уникальное поле в обоих таблицах,
если нет -- надо дорабатывать условия....

Поле даты не уникальное, но уникальна комбинация date, id_client, time. Дата и время отдельно так как в расписании нет даты, а есть день недели и время. Ну и в факте день недели меняем на конкретную дату и время.
...
Рейтинг: 0 / 0
Выбор из двух таблиц
    #39552597
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex-777javajdbcпропущено...


select
z.date
,p.summa
,f.summa
from
(
select date
from PLAN
union
select date
from FACT
) z
left join PLAN p on p.date = z.date
left join FAKT f on f.date = z.date

...предпологается что ДАТЕ -- уникальное поле в обоих таблицах,
если нет -- надо дорабатывать условия....

Поле даты не уникальное, но уникальна комбинация date, id_client, time. Дата и время отдельно так как в расписании нет даты, а есть день недели и время. Ну и в факте день недели меняем на конкретную дату и время.

...какой вопрос такой и ответ...

...ставьте задачу точнее, проводите конкретные структуры ,
конкретное отношение структур, бизнес правила
(может ли клиент в один день два раза поиметь факт?
можно ли поиметь факт НЕ в день расписания, и все такая фигня)
пример данных и ожидаемый результат...
...
Рейтинг: 0 / 0
Выбор из двух таблиц
    #39552617
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT sq.date, t1.plan, t2.fakt
FROM ( SELECT date FROM plan
       UNION
       SELECT date FROM fakt
     ) AS sq
LEFT JOIN plan AS t1 ON sq.date = t1.date
LEFT JOIN fakt AS t2 ON sq.date = t2.date
...
Рейтинг: 0 / 0
Выбор из двух таблиц
    #39552619
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
SELECT sq.date, SUM(t1.plan) AS plan, SUM(t2.fakt) AS fakt
FROM ( SELECT date FROM plan
       UNION
       SELECT date FROM fakt
     ) AS sq
LEFT JOIN plan AS t1 ON sq.date = t1.date
LEFT JOIN fakt AS t2 ON sq.date = t2.date
GROUP BY sq.date
...
Рейтинг: 0 / 0
Выбор из двух таблиц
    #39553214
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex-777,

full outer join
...
Рейтинг: 0 / 0
Выбор из двух таблиц
    #39553239
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv , FULL JOIN? в MySQL?
...
Рейтинг: 0 / 0
Выбор из двух таблиц
    #39553418
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina MasterZiv , FULL JOIN? в MySQL?

Если нет, имитировать через UNION ALL...

p.s. я что все мыскули должен наизусть знать?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выбор из двух таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]