Изменить тип данных в PIVOT Query - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть таблица, построенная с помощью команды 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...