Cómo separar valores de columna con coma
Tengo mesaGrouping
Groupid (PK), Sensorid (FK) deSensor
mesa. YSensor
La tabla tiene Unitsid como referencia de clave externa. Así que utilicé esta consulta para obtener todas las columnas de tres tablas:
Select * from Grouping
left join Sensors on Grouping.SensorID = Sensors.SensorID
left joinUnits on Grouping.UnitsID = Units.UnitsID
Salida:
Group Unit Sensor
G1 U1 S1
G1 U2 S2
G1 U1 S4
G1 U1 S3
G1 U2 S5
G2 U1 S7
Mi problema es que quiero la salida como:
G1 U1 S1,S3,S4
G1 U2 S2,S5
G2 U1 S7
¿Cómo obtener esta salida de la tabla 'Agrupación'?
WITH CTE
AS
(
Select * fromGrouping
left join Sensors on Grouping.SensorID = Sensors.SensorID
left join Units onGrouping.UnitsID = Units.UnitsID
)
SELECT
t1."Group",
t1.Unit ,
STUFF((
SELECT ', ' + t2.Sensor
FROM Grouping t2
WHERE t2."Group" = t1."Group"
AND t2.Unit = t1.Unit
FOR XML PATH (''))
,1,2,'') AS Sensors
FROM Grouping t1
GROUP BY t1."Group", t1.Unit;
Esto no funciona porque la tabla de agrupación solo tiene sensorId y unitsId, por lo que genera un error de columna no válido.