|
Взаимоисключающее присоединение одной таблицы без ключа
|
|||
---|---|---|---|
#18+
Ситуация вот какая: Есть данные о заправках автомобилей, присылаемые сторонней организацией и есть таблица путевых листов, в которой помимо прочего водители пишут информацию о выданном топливе. Явной связи между этими данными нет (можно просто попытаться найти путевой лист по транспортному средству, дате заправки, виду топлива и типу топлива). Задача: Выводить данные о заправках в разрезе путевых листов, но если удовлетворяющий путевой лист не найден - всё равно выводить, но выделять как-нибудь. Суть проблемы: Водитель может накосячить и указать заправку не в том путевом листе, в котором заправлялся на самом деле (за день раньше или день позже например), а так же есть машины которые работают в две смены (то есть у них в день будет 2 путевых листа, один может быть с заправкой, второй - нет). Написаны два подзапроса: один выводит значения, где путевой лист, удовлетворяющий условиям заправки: транспортное средство + дата + топливо + количество нашелся, второй - где не нашелся. Но из-за того, что у сменников больше, чем по одному путевому листу в день данные задваиваются: то есть в одном случае он находит путевой лист за эту дату, удовлетворяющий условиям, а второй раз находит второй путевой лист за эту дату, который под условия не подходит. Вопрос: Как сделать так, чтобы в случае, если путевой лист, удовлетворяющий условиям нашелся - то второй не отрабатывал ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 08:44 |
|
Взаимоисключающее присоединение одной таблицы без ключа
|
|||
---|---|---|---|
#18+
IceMystic Вопрос: Как сделать так, чтобы в случае, если путевой лист, удовлетворяющий условиям нашелся - то второй не отрабатывал А тут раздел по конкретной СУБД. Попробуйте лучше спросить в Проектировании, ну или у "заказчиков" этого отчёта. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 11:02 |
|
Взаимоисключающее присоединение одной таблицы без ключа
|
|||
---|---|---|---|
#18+
alexeyvg IceMystic Вопрос: Как сделать так, чтобы в случае, если путевой лист, удовлетворяющий условиям нашелся - то второй не отрабатывал А тут раздел по конкретной СУБД. Попробуйте лучше спросить в Проектировании, ну или у "заказчиков" этого отчёта. Да нет, вопрос в другом: как сделать так, чтобы в результаты выборки двух подзапросов попадали все значения первого и те значения второго, которых нет в первом. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 11:41 |
|
Взаимоисключающее присоединение одной таблицы без ключа
|
|||
---|---|---|---|
#18+
IceMystic, Код: sql 1. 2.
Через cte или временные таблицы можно сделать так, чтобы <первый подзапрос> не надо было писать дважды. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 11:43 |
|
Взаимоисключающее присоединение одной таблицы без ключа
|
|||
---|---|---|---|
#18+
IceMystic Да нет, вопрос в другом: как сделать так, чтобы в результаты выборки двух подзапросов попадали все значения первого и те значения второго, которых нет в первом. Например, full join: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 11:54 |
|
|
start [/forum/moderation_log.php?user_name=Vlad5780]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 493ms |
total: | 632ms |
0 / 0 |