Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
Есть таблица, в одном из столбцов которой могут встречаться Null-ы. Нужно соединить ее с другой таблицей, но только в том случае если в том столбце нет Null-ов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2019, 21:42 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
trasca, left join ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2019, 21:58 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Простой join, по-моему, не подойдет. Нужен join только в том случае, если в первой таблице нет пустых значений. Первая таблица это результат запроса. Примитивно: запрос, анализ результата, выход или join с этим же запросом, в зависимости от результата. Получается, что один запрос выполняется два раза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2019, 23:11 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
trascaalexeyvg, Простой join, по-моему, не подойдет.Конечно, не подойдёт, нужен именно LEFT join Или непонятно, что вам нужно, тогда: Гавриленко Сергей Алексеевичtrasca, Будьте добры выполнить пункт 4 и пункт 6 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 14:28 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
Начальную поставку можно интерпретировать как: Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 16:32 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
Kopelly, Да, но я начал из середины Целиком задача выглядит так: есть Таблица @a, содержащая перечень товаров по участкам и Таблица @b, содержащая сборщиков собравших товары на своих участках. Необходимо в Таблице @a заполнить столбец Рicker в тот момент, когда будет целиком заполнена Таблица @b, т.е. Таблица @b будет содержать все участки, содержащиеся в столбце Department из Таблицы @a. Сервер MSSQL2008. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 16:59 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
trasca, а что изменится если обновится только та информация, что уже доступна? Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 17:22 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
trasca, на всяк случай - мой запрос неверный... проверить можно пересечением ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 17:36 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
buser, Весь смысл как раз в том, чтобы обновить Таблицу @a только один раз, когда целиком заполнится Таблица @b, чтобы не блокировать ее каждым добавлением записи в Таблицу @b. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 17:38 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 17:44 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
Kopelly, оффтопик Впервые за несколько лет чтения форумов sql.ru увидел EXCEPT. Его реально у вас в продакшне можно найти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 19:50 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
TheRookie, Впервые за несколько лет аж даже зарегился чтобы спросить про EXCEPT ))) Плохо читали, раз не видели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 22:44 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
trascaЦеликом задача выглядит так: есть Таблица @a, содержащая перечень товаров по участкам и Таблица @b, содержащая сборщиков собравших товары на своих участках. Необходимо в Таблице @a заполнить столбец Рicker в тот момент, когда будет целиком заполнена Таблица @b, т.е. Таблица @b будет содержать все участки, содержащиеся в столбце Department из Таблицы @a. Сервер MSSQL2008.Понятнее не стало :-) "заполнить столбец Рicker" - имеется в виду обновить значение с null на какое то другое? Обновление делается командой update То есть, что бы решить задачу из вашего описания, вам сначала нужно "целиком заполняете" таблицу @b, а потом выполнить команду update, что бы поменять значение столбца Рicker. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2019, 23:14 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
trasca, Совершенно непонятно, что у вас в задаче есть сущность, например. Что у вас ключ соединения. Если вы соединяете по Участку, и @b является справочником участков, то раскройте физический смысл таблицы @а. Что за сущность вы там храните? Как база поймет когда "целиком заполнена Таблица @b" и что такое "все участки". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 05:40 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
TheRookieKopelly, оффтопик Впервые за несколько лет чтения форумов sql.ru увидел EXCEPT. Его реально у вас в продакшне можно найти? А как ты сравниваешь наборы, которые могут содержать NULL? Нешто пишешь (A = B or A is null and B is null)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 05:41 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
PizzaPizza, alexeyvg, Таблица @a - это фрагмент таблицы заявок на сборку товаров по участкам, полная Таблица @a содержит идентификатор заявки; количество и другие столбцы. Таблица @b - это фрагмент таблицы выполненных заданий на сборку по участкам; полная Таблица @b содержит еще и идентификатор заявки. На каждом участке работает несколько сборщиков. В системе отслеживается два события: появление новой заявки (новых строк в Таблице @a) и выполнение задания на сборку (добавление строк в Таблицу @b). При появлении новой заявки сборщикам выдаются задания на сборку - лист бумаги с перечнем товаров, хранящемся на определенном участке и количеством, которые должен собрать конкретный сборщик. Задание на сборку имеет штрихкод, содержащий идентификатор заявки, идентификатор участка, идентификатор сборщика. После выполнения задания на сборку сборщик сканирует штрихкод заявки, Таблица @b дополняется записью. После того, как все задания на сборку по конкретной заявке исполнены (отсканировано последнее задание на сборку) апдейтится столбец Рicker в Таблице @a и удаляются строки по исполненной заявке из Таблицы @b. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 07:52 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
trascaПосле выполнения задания на сборку сборщик сканирует штрихкод заявки, Таблица @b дополняется записью. После того, как все задания на сборку по конкретной заявке исполнены (отсканировано последнее задание на сборку) апдейтится столбец Рicker в Таблице @a и удаляются строки по исполненной заявке из Таблицы @b.Из этого непонятно, что нужно сделать со стороны SQL Server "все задания ... исполнены" - это административное, бизнес - событие Сервер не может знать, все задания выполнены, или не все. По крайней мере, вы про это ничего не сказали. Соответственно, когда это событие наступает, какой то менеджер (мастер, учётчик) нажимает кнопку, и на сервере нужно выполнить команду UPDATE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 09:09 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
alexeyvg, Сборщик сканирует штрихкод задания, Таблица @b дополняется записью. В этот момент должен запускаться запрос на обновление Таблицы @a, но обновление должно произойти только в том случае, если Таблица @b содержит записи по всем участкам, которые есть в Таблице @a по конкретной заявке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 09:50 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
Поле "Заявка" в твоем примере отсутствует. Попробуй отойти от полей и таблиц и сформулируй задачу на уровне и в терминах кладовщика/товароведа/технолога. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 11:47 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
982183Поле "Заявка" в твоем примере отсутствует. Попробуй отойти от полей и таблиц и сформулируй задачу на уровне и в терминах кладовщика/товароведа/технолога. После этого желание у ТС что-то апдейтить, скорее всего, пройдет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 12:57 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
aleks222TheRookieKopelly, оффтопик Впервые за несколько лет чтения форумов sql.ru увидел EXCEPT. Его реально у вас в продакшне можно найти? А как ты сравниваешь наборы, которые могут содержать NULL? Нешто пишешь (A = B or A is null and B is null)? А это к чему, сравнение наборов, которые НАЛЛ могут содержать? Вместо EXCEPT используем NOT EXISTS - потому что EXCEPT в себя DISTINCT включает, что не приемлемо обычно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 15:14 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
TheRookieА это к чему, сравнение наборов, которые НАЛЛ могут содержать? Вместо EXCEPT используем NOT EXISTS - потому что EXCEPT в себя DISTINCT включает, что не приемлемо обычно. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 1. Покажите distinct в запросах 2 и 3. 2. Для запроса 3 покажите решение через exists. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 16:17 |
|
||
|
Соединение таблиц по условию
|
|||
|---|---|---|---|
|
#18+
invm1. Покажите distinct в запросах 2 и 3. Это тест на внимательность какой-то?))) Но ок, вот к запросу 2 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. В чём прикол, комрад? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2019, 17:02 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39809563&tid=1687870]: |
0ms |
get settings: |
6ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
101ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 261ms |
| total: | 475ms |

| 0 / 0 |
