У меня есть таблица, построенная с помощью команды pivot.Я пишу программу (C #), которая вставляет результаты запроса SQL в файл Excel.Я использую библиотеку ClosedXML.Excel, System.Data.SqlClient ;.У меня проблема с вставкой значений pivot (1, 1), остальные значения вставляются в файл excel.Ошибка типа данных: 1, 1. В программе я использую следующие типы данных.
switch (dr.GetDataTypeName(j))
{
case "Varchar2":
string s = dr.GetString(j);
if (s.Substring(0, 1) == "=")
s = " " + s;
ws.Cell(row, j + 1).Value = s;
break;
case "decimal":
ws.Cell(row, j + 1).Value = dr.GetDecimal(j);
break;
case "datetime":
ws.Cell(row, j + 1).Value = dr.GetDateTime(j);
break;
case "int":
ws.Cell(row, j + 1).Value = dr.GetInt32(j);
break;
case "varchar":
ws.Cell(row, j + 1).Value = dr.GetString(j);
break;
default:
break;
}
mssql запрос
DECLARE @employeeA NVARCHAR (MAX) SET @employeeA = 'Bob'
DECLARE @cols NVARCHAR (MAX)
SELECT @cols = COALESCE (@cols + ',[' + CONVERT(NVARCHAR, [date_A], 106) + ']',
'[' + CONVERT(NVARCHAR, [date_A], 106) + ']')
FROM (SELECT DISTINCT [date_A] FROM [dbo].[#TABLE_1]) PV
ORDER BY [date_A]
DECLARE @queryD NVARCHAR(MAX)
SET @queryD = '
SELECT * into [dbo].[##RESULT] FROM (
select
Qty as numrow
,groups
,employee
,date_A
,''test1'' as NAMEROW
from [dbo].[#TABLE_1]
) x
PIVOT
(
sum([numrow])
FOR [date_A] IN (' + @cols + ')
) p
where employee = '''+@employeeA+'''
'
EXEC(@queryD)
select * from [dbo].[##RESULT]
запрос результата:
groups employee NAMEROW 07.11.2018 08.11.2018
group1 Bob test1 1 1