Ich habe ein Dataset mit zwei Spalten, TransDateString und TransDate. TransdateString ist einfach eine nvarchar Version von Transdate, so dass die Daten wie folgt aussieht:Ergebnisse außerhalb der Reihenfolge in Teil meiner t-SQL-Abfrage
TransDate | TransDateString
2011-1-4 | 1-2011
2004-6-5 | 6-2004
2010-10-14| 10-2010
2012-7-21 | 7-2012
2010-10-11| 10-2010
2012-7-5 | 7-2012
Was ich versuche, die TransDateString in eine Variable, um von TransDate zu tun ist, zu erhalten:
SET @cols = STUFF((
SELECT ',' + QUOTENAME(A.TransDateString) FROM
(
Select c.TransDateString,
Row_Number() Over (Partition By c.TransDateString Order By c.TransDate asc) RowNum
FROM #dataSet c
) A
Where RowNum = 1
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
Diese funktioniert, aber sie sind nicht in Ordnung. Zur Laufzeit ich so etwas wie @cols=[[1-2011],[10-2010],[6-2004],[7-2012]]
Der SQL Server 2106 verfügt über eine Methode [STRING_AGG] (https://msdn.microsoft.com/en-us/library/mt790580.aspx). Welche SQL Server-Version verwenden Sie? –
SQL Server 2008 R2 wird nicht mehr unterstützt. Zeit für ein Upgrade BTW [2016 SP1] (https://sqlperformance.com/2016/11/sql-server-2016/big-deal-sp1) bringt In-Memory-Tabellen, Komprimierung, Columnstore-Indizes, Partitionen, sogar zur Express Edition und LocalDb –