Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему не выполняется запрос / 3 сообщений из 3, страница 1 из 1
03.02.2019, 17:21
    #39768952
Kontox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не выполняется запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
declare @columnlist varchar(max) = stuff((select distinct ',[' + format(doc_date,'yyyyMM') + ']'   from [AOtest].[dbo].[nsk] where shop_code=N'00303НСК' and product_id=13321 order by ',[' + format(doc_date,'yyyyMM') + ']' for xml path('')),1,1,'')

declare @dispcolumnlist varchar(max) = stuff((select distinct ',[' + format(doc_date,'yyyyMM') + '] as docnum_'  + format(doc_date,'yyyyMM') from [AOtest].[dbo].[nsk] where shop_code=N'00303НСК' and product_id=13321 order by ',[' + format(doc_date,'yyyyMM') + '] as docnum_'  + format(doc_date,'yyyyMM') for xml path('')),1,1,'')
declare @dispcolumnlist2 varchar(max) = stuff((select distinct ',[' + format(doc_date,'yyyyMM') + '] as shipcount_'  + format(doc_date,'yyyyMM') from [AOtest].[dbo].[nsk] where shop_code=N'00303НСК' and product_id=13321 order by ',[' + format(doc_date,'yyyyMM') + '] as shipcount_'  + format(doc_date,'yyyyMM')  for xml path('')),1,1,'')

declare @sql varchar(max) = 'select shop_code,
product_id,' + @dispcolumnlist + ' into table1 from (select shop_code,
product_id,format(doc_date,''yyyyMM'') as monthdate,ship_count from [AOtest].[dbo].[nsk] where shop_code=N'00303НСК and product_id=13321)t pivot(sum(ship_count) for monthdate in (' + @columnlist + '))p'

exec(@sql)

select @sql = 'select shop_code,
product_id,' + @dispcolumnlist2 + ' into table2 from (select shop_code,
product_id,format(doc_date,''yyyyMM'') as monthdate,doc_num from [AOtest].[dbo].[nsk] where shop_code=N'0303НСК and product_id=13321)t pivot(count(doc_num) for monthdate in (' + @columnlist + '))p'

exec(@sql)




Выходят ошибки

Сообщение 102, уровень 15, состояние 1, строка 137
Неправильный синтаксис около конструкции "00303".
Сообщение 102, уровень 15, состояние 1, строка 143
Неправильный синтаксис около конструкции "yyyyMM".
Сообщение 137, уровень 15, состояние 2, строка 145
Необходимо объявить скалярную переменную "@sql".


Как правильно его составить?
...
Рейтинг: 0 / 0
03.02.2019, 18:00
    #39768957
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не выполняется запрос
Ясно, что неправильно поставлены одинарные кавычки.
Даже окраска текста запроса помогает это понять.
Может, имелось в виду это?
Код: sql
1.
2.
3.
declare @sql varchar(max) = 'select shop_code,
product_id,' + @dispcolumnlist + ' into table1 from (select shop_code,
product_id,format(doc_date,''yyyyMM'') as monthdate,ship_count from [AOtest].[dbo].[nsk] where shop_code=N''00303НСК'' and product_id=13321)t pivot(sum(ship_count) for monthdate in (' + @columnlist + '))p'
...
Рейтинг: 0 / 0
04.02.2019, 17:29
    #39769338
Kontox
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не выполняется запрос
Вроде заработало, спс
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Почему не выполняется запрос / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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