Итак, я создал динамический сводный запрос, который отлично работает в SQL Server Management Studio.
Код динамического сводного запроса:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME(PatternID)
from loglist
group by PatternID
order by PatternID
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT FileName,' + @cols + ' from
(
select FileName, PatternID, Found
from loglist
) x
pivot
(
sum(Found)
for PatternID in (' + @cols + ')
) p '
execute(@query);
Вывод:
f 1 1 1 NULL NULL NULL
q 1 1 1 NULL NULL NULL
e 1 1 1 NULL NULL NULL
s NULL NULL NULL 0 0 0
Теперь я хочу сохранить эти данные в кадре данных Pandas, а также в виде файла .csv
автоматически.
Итак,
def analytics():
db = pyodbc.connect(driver="**",
host="**",
database="**",
trusted_connection="**",
user="**",
password="**",
port="**")
cur = db.cursor()
textfile = open('analytics.script', 'r')
filetext = textfile.read()
textfile.close()
print(filetext)
cur.execute(SqlCommand)
# store it in pandas Data Frame here.
analytics()
Но он показывает эту ошибку:
DataError: ('22018', "[22018] [Microsoft][SQL ***][SQL Server]Conversion failed when converting the nvarchar value 'long file name here' to data type int. (245) (SQLExecDirectW)")
analytics.script
содержит динамический сводный запрос.
Что здесь делать?
Заранее спасибо