powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / FOR XML PATH объединение событий
8 сообщений из 8, страница 1 из 1
FOR XML PATH объединение событий
    #40005369
chasovoy96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые коллеги!
Очень прошу Вашей помощи. Пожалуйста Вы не могли бы мне подсказать как при помощи функции FOR XML PATH возможно объединить события (как в таблице).
...
Рейтинг: 0 / 0
FOR XML PATH объединение событий
    #40005378
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chasovoy96,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select 
      t.[Пунтк],
      t.[Дата откл],
      t.[Время откл],
      t.[Дата вкл],
      t.[Врермя вкл],
      x.[msg] as [Сообщение]
from [tbl] t
    cross apply (select format([Дата откл], 'dd.MM.yy') + ' с ' + convert(varchar, [Время откл]) + ' до ' + convert(varchar, [Время вкл]) + ' запланированы ремонтные работы в ' + [Пункт] + ', 88002500000' for xml path('')) x ([msg])
 
...
Рейтинг: 0 / 0
FOR XML PATH объединение событий
    #40005428
chasovoy96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff,

благодарю Вас за ответ!
Прошу прощения а Вы не могли подсказать выходит ошибка
'format' is not a recognized built-in function name

значит нужно преобразовать в другой тип?
...
Рейтинг: 0 / 0
FOR XML PATH объединение событий
    #40005433
chasovoy96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chasovoy96, вот так заработало

cross apply (select convert(varchar(10), [Дата откл], 4)
...
Рейтинг: 0 / 0
FOR XML PATH объединение событий
    #40005436
chasovoy96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff, только к сожалению я так и не понял как выводить сообщение в одну строчку:

сейчас у меня выводится сообщение вот так:
15.10.2020 с 14:00 до 15.10.2020 запланированы ремонтные работы в с.Краснослободское, 88002500000

а как можно сделать условие ЕСЛИ есть события с одинаковым населенным пунктом но с разными датами отключения выводить в одну строку:

что бы получилось вот так:

15.10.2020 с 14:00 до 15.10.2020 И 16.10.2020 с 10:00 до 12:00 запланированы ремонтные работы в с.Краснослободское, 88002500000
...
Рейтинг: 0 / 0
FOR XML PATH объединение событий
    #40005438
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chasovoy96,

используйте CASE или IIF (если версия сервера позволяет) внутри формирования строки.

add: а вообще по хорошему оформить вопрос сначала правильно:
https://www.sql.ru/forum/127456/rekomendacii-po-oformleniu-soobshheniy-v-forume

c примером входных данных и что в итоге хотите получить (+ описанием логики условий)
...
Рейтинг: 0 / 0
FOR XML PATH объединение событий
    #40005439
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chasovoy96,

поищите по форуму, как объединить несколько строк в одну.
...
Рейтинг: 0 / 0
FOR XML PATH объединение событий
    #40005441
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chasovoy96
а как можно сделать условие ЕСЛИ есть события с одинаковым населенным пунктом но с разными датами отключения выводить в одну строку:


дык, написать запрос.
Код: sql
1.
2.
3.
4.
select Пункт
       , строка = ( select convert(varchar(10), [Дата откл], 4) + '; '  from Таблица as x where Пункт = t. Пункт for xml path('') )
  from Таблица as t
  group by Пункт
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / FOR XML PATH объединение событий
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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