Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите с LEFT JOIN
|
|||
|---|---|---|---|
|
#18+
Здравствуй, All! Вот, возникла проблема на работе. Существует 2 таблицы: 1-я таблица: 123456 | 01.01.2001 | 123 123457 | 01.01.2001 | 124 123458 | 01.01.2001 | 125 123459 | 02.01.2001 | 126 2-я таблица: 01.01.2001 | 123 | Текст1 01.01.2001 | 123 | Текст2 01.01.2001 | 123 | Текст3 01.01.2001 | 124 | Текст1 01.01.2001 | 125 | Текст1 01.01.2001 | 125 | Текст2 02.01.2001 | 126 | Текст1 02.01.2001 | 126 | Текст2 2-е и 3-е поля в первой таблице связаны с 1-м и 2-м полями во второй. Необходимо получить следующую таблицу: 123456 | 01.01.2001 | 123 | Текст1+Текст2+Текст3 123457 | 01.01.2001 | 124 | Текст1 123458 | 01.01.2001 | 125 | Текст1+Текст2 123459 | 02.01.2001 | 126 | Текст1+Текст2 т.е., необходимо сделать LEFT JOIN, но с конкатенацией значений в 3-м поле 2-й таблицы. Сделать это нужно в SP, и, неплохо, если бы это быстро работало Заранее огромное спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2001, 22:03 |
|
||
|
Помогите с LEFT JOIN
|
|||
|---|---|---|---|
|
#18+
Предлагаю использовать функцию. SELECT ID, Date, Number, MyFunc FROM Table LEFT JOIN А в теле функции открыть курсор с нужным запросом. Путь конечно не самый быстрый, но это то что сразу в голову пришло. Может другие участники форума что-либо более интересное подскажут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2001, 03:23 |
|
||
|
Помогите с LEFT JOIN
|
|||
|---|---|---|---|
|
#18+
2 RoKo Вот так в лоб одним селектом это сделать невозможно в принципе. Можно сделать или перебирая по записи в цикле или, как предложил, Slava написать функцию. Если порядок(Текст1+Текст2 или Текст2+Текст1) не важен она пишется без курсоров в 5 строчек(используя конструкцию select @t=@t+txt from tbl). Ну и в результате будет будет селект из первой таблицы, конечно, без всяких жоинов: SELECT ID, Date, Number, dbo.MyFunc(Date, Number) FROM Table1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2001, 07:10 |
|
||
|
Помогите с LEFT JOIN
|
|||
|---|---|---|---|
|
#18+
Если во 2-й таблице есть поле LineNum (номер строки) и количество строк ограничено, то эффективный способ: select t1.id, t1.date, MAX(CASE WHEN t2.LineNUM=1 THEN t2.Txt END)+ MAX(CASE WHEN t2.LineNUM=2 THEN t2.Txt END)+... from t1 left outer join t2 on (t1.Date=t2.Date and ...) group by t1.id,t1.date,... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2001, 12:16 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3569&tid=1826474]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 347ms |

| 0 / 0 |
