Principales respuestas
Agrupar campos repetidos.

Pregunta
-
Que tal buenas tardes, estoy tratando de hacer la siguiente consulta:
select op.Requirement_Id, op.Secuence,w.Operation as station, cp.Platform ,op.Description, cm.Model+'+'+cast((SELECT COUNT(*) FROM CarModels WHERE CarPlatform_Id= op.CarPlatform_Id)as varchar)as registros
from OperationRequirements as op
join WorkStations as w on op.WorkStation_Id = w.WorkStation_Id
join CarPlatform as cp on op.CarPlatform_Id = cp.CarPlatform_Id
join CarModels as cm on cp.CarPlatform_Id = cm.CarPlatform_Id
join Zone as z on w.ZoneId = z.ZoneId
join Line as l on z.LineId = l.LineId
where w.Operation='4110' and op.Secuence=1
group by cp.Platform,op.Requirement_Id, op.Secuence,w.Operation,op.Description, cm.Model,op.CarPlatform_Id
order by cp.Platform
Lo que busco es por ejemplo en la columna de Platform traiga los registros sin repetir.
ejemplo:
3584-----1-------4110-----Billy Goat-----EscanearVIN------Z19VDR99K+4
Trate de hacerlo con distinct pero no consegui lo que buscaba. Podrían orientarme ?
El resultado de la consulta:platform
3584---- 1---- 4110--- Billy Goat--- EscanearVIN--- Z19VDR99AK+4
3584-----1---- 4110--- Billy Goat--- EscanearVIN--- Z19VDR99BK+4
3584---- 1---- 4110--- Billy Goat--- EscanearVIN--- Z20NAR99AZ+4
3584---- 1---- 4110--- Billy Goat--- EscanearVIN--- Z20NAR99BZ+4- Editado Eduardo HR viernes, 15 de noviembre de 2019 20:29
Respuestas
-
Que tal buenos días, muchísimas gracias por la ayuda el resultado de la consulta es el que buscaba. Había leído sobre las tablas derivadas pero no sabia como implementarlas, de nuevo muchas gracias.
- Propuesto como respuesta Pablo RubioModerator martes, 19 de noviembre de 2019 19:33
- Marcado como respuesta Pablo RubioModerator martes, 19 de noviembre de 2019 19:33
Todas las respuestas
-
Hola Eduardo HR:
La solución más fácil, es integrar tu consulta en una tabla derivada y agrupar en la salida.
SELECT D.Requirement_Id, D.Secuence, D.station, D.Platform, D.Description, min(d.REGISTROS) AS Registros FROM ( SELECT op.Requirement_Id , op.Secuence , w.Operation AS station , cp.Platform , op.Description , cm.Model + '+' + CAST( ( SELECT COUNT(*) FROM CarModels WHERE CarPlatform_Id = op.CarPlatform_Id ) AS VARCHAR) AS registros FROM OperationRequirements AS op JOIN WorkStations AS w ON op.WorkStation_Id = w.WorkStation_Id JOIN CarPlatform AS cp ON op.CarPlatform_Id = cp.CarPlatform_Id JOIN CarModels AS cm ON cp.CarPlatform_Id = cm.CarPlatform_Id JOIN Zone AS z ON w.ZoneId = z.ZoneId JOIN Line AS l ON z.LineId = l.LineId WHERE w.Operation = '4110' AND op.Secuence = 1 GROUP BY cp.Platform , op.Requirement_Id , op.Secuence , w.Operation , op.Description , cm.Model , op.CarPlatform_Id ) AS D GROUP BY D.Requirement_Id, D.Secuence, D.station, D.Platform, D.Description ORDER BY Platform;
Tablas derivadas.
https://javifer2.wordpress.com/2019/11/06/tabla-derivada/
Group by
https://javifer2.wordpress.com/2019/10/04/group-by-quizas-la-clausula-mas-conflictiva/
- Propuesto como respuesta Pablo RubioModerator viernes, 15 de noviembre de 2019 22:32
-
Deleted
- Propuesto como respuesta Pablo RubioModerator martes, 19 de noviembre de 2019 19:32
-
Que tal buenos días, muchísimas gracias por la ayuda el resultado de la consulta es el que buscaba. Había leído sobre las tablas derivadas pero no sabia como implementarlas, de nuevo muchas gracias.
- Propuesto como respuesta Pablo RubioModerator martes, 19 de noviembre de 2019 19:33
- Marcado como respuesta Pablo RubioModerator martes, 19 de noviembre de 2019 19:33
-
Que tal buenos días, no es que se conviertan los datos sino lo que buscaba era contar cuantos modelos tiene cada plataforma pero al momento de mostrar la información solo se viera el primer modelo mas el número total de modelos que contiene esa plataforma.
-
-
Deleted
- Propuesto como respuesta Pablo RubioModerator martes, 19 de noviembre de 2019 19:34