我正在编写一个 SSIS 包来将数据从 SQL Server 2012 数据库输出到.CSV
为客户归档。要求是第一行是列名称。下面是我为数据流任务中的源编写的查询。问题是,它总是将列名返回为最后一行,而不是第一行。为什么?我该如何实现这一目标?
DECLARE @Today AS DateTime= GETDATE()
DECLARE @NextPayrollDate AS DateTime
EXEC mobile.getNextPayrollDate @Today, @NextPayrollDate OUTPUT
;WITH LatestEligible (EmployeeID, LatestBillVerified) AS
(
SELECT
EmployeeID, MAX(DateBillVerified) AS LatestBillVerified
FROM
Inv_DataReimbursement
GROUP BY
EmployeeID
)
SELECT
'Edit Set' AS 'Edit Set',
'Employee No.' AS 'Employee No.'
FROM
LatestEligible
UNION
SELECT
NULL AS 'Edit Set',
d.EmployeeID AS 'Employee No.'
FROM
LatestEligible d
INNER JOIN
Employee e ON d.EmployeeID = e.EmployeeID
INNER JOIN
Inv_DataReimbursement dr ON d.EmployeeID = dr.EmployeeID
AND d.LatestBillVerified = dr.DateBillVerified
WHERE
(dr.MonthlyServiceEligible = 'true'
OR (dr.MonthlyServiceEligible = 'false'
AND e.DateEnd IS NOT NULL
AND e.DateEnd > @NextPayrollDate))
AND dr.ActualAmount > 0
我该如何实现这一目标?
不要通过 SQL 来完成。
只需勾选第一个数据行中的列名称框中的平面文件连接管理器 https://learn.microsoft.com/en-us/sql/integration-services/connection-manager/flat-file-connection-manager?view=sql-server-2017并保持原始查询不变。
然后,列标题将自动添加,而无需合并这些附加元数据(并且可能在 SQL 端将所有内容转换为字符串)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)