John Hall
2020-04-11 16:08:48 UTC
I have a data table with these 3 columns
SELECT [TestID],[ParameterID],[TextValue] FROM [ParameterEntries]
And a setup table with these 3 columns
SELECT [PartID], [ParameterID], [PresentOrder] FROM [ParametersUsed]
SELECT TestID, [1] as Param1, [2] as Param2, [3] as Param3, [4] as Param4, [5] as Param5
FROM (select TestID, TextValue,
row_number() over(partition by TestID ORDER BY ParameterID) rnk
FROM ParameterEntries WHERE TestID = (SELECT TOP 1 TestID FROM Subgroups WHERE CharID = 502107)
) p
pivot(max(TextValue) for rnk in ([1], [2], [3], [4], [5])) piv
TestID Param1 Param2 Param3 Param4 Param5
506789 20147338 3w 2.14 1.49 1.73
SELECT [PartID], [ParameterID], [PresentOrder]
FROM [ParametersUsed]
WHERE PartID = (SELECT PartID FROM CharList WHERE CharID = 502107)
ORDER BY PresentOrder
PartID ParameterID PresentOrder
502014 154 1
502014 502009 2
502014 502022 3
502014 502023 4
502014 502024 5
How do I put the Param1, Param2, Param3... in PresentOrder?
SELECT [TestID],[ParameterID],[TextValue] FROM [ParameterEntries]
And a setup table with these 3 columns
SELECT [PartID], [ParameterID], [PresentOrder] FROM [ParametersUsed]
SELECT TestID, [1] as Param1, [2] as Param2, [3] as Param3, [4] as Param4, [5] as Param5
FROM (select TestID, TextValue,
row_number() over(partition by TestID ORDER BY ParameterID) rnk
FROM ParameterEntries WHERE TestID = (SELECT TOP 1 TestID FROM Subgroups WHERE CharID = 502107)
) p
pivot(max(TextValue) for rnk in ([1], [2], [3], [4], [5])) piv
TestID Param1 Param2 Param3 Param4 Param5
506789 20147338 3w 2.14 1.49 1.73
SELECT [PartID], [ParameterID], [PresentOrder]
FROM [ParametersUsed]
WHERE PartID = (SELECT PartID FROM CharList WHERE CharID = 502107)
ORDER BY PresentOrder
PartID ParameterID PresentOrder
502014 154 1
502014 502009 2
502014 502022 3
502014 502023 4
502014 502024 5
How do I put the Param1, Param2, Param3... in PresentOrder?