Principales respuestas
como filtrar duplicados en sentencia inner joins cuando uso order by

Pregunta
-
disculpen tengo un script que trae registros de diferentes tablas, pero ésta devuelve duplicados porque cada usuario tiene 'n' agendas
SELECT FORMAT(Agenda2FechaInicio ,'yyyy/MM/dd HH:mm tt') AS 'Hora de Inicio', PacienteApellidoPaterno+' '+PacienteApellidoMaterno +' ' +PacienteNombre AS 'Nombre del Paciente', AG2.PacienteExpediente AS Expediente, datediff(YYYY,PacienteFechaNacimiento,getdate()) As Edad, atc.Agenda2TipoConsultaDescripcion AS Consulta, '__________' AS Diagnosticos, '__________' AS 'Motivo de Alta','__________' AS 'Contrareferencia (Indicar Nivel)', AG2.DirectorioInstitutoNumeroEmpleado AS Usuario FROM Agenda2 AG2 INNER JOIN dbo.Agenda2Parametros ON AG2.Agenda2ParametrosID = dbo.Agenda2Parametros.Agenda2ParametrosID INNER JOIN Agenda2ProcedimientosSolicitados ON AG2.Agenda2ID = dbo.Agenda2ProcedimientosSolicitados.Agenda2ID INNER JOIN Pacientes ON AG2.PacienteExpediente = Pacientes.PacienteExpediente --INNER JOIN dbo.Agenda2Parametros ap ON ap.Agenda2ParametrosID = AG2.Agenda2ParametrosID INNER JOIN dbo.Agenda2TipoConsulta atc ON atc.Agenda2TipoConsultaID = AG2.Agenda2TipoConsultaID WHERE Agenda2Cancelada = 0 AND (Agenda2FechaInicio BETWEEN CONVERT (DATETIME,'2016-08-04 00:00:00',102) AND CONVERT(DATETIME,'2016-08-04 23:59:59',102) ) AND AG2.Agenda2LugarRealizacionID=40181
el asunto es que usando distinct me pide agrupar, pero para campos que no exiten en mis tablas; solo se agregan para requerimiento extra del usuario como indicaría esa agrupacion ('__________' AS 'Motivo de Alta'
)
La programacion en Microsoft cada ves se torna inalcanzable
Respuestas
-
ya encontré mi error, intentaba hacer el order by
Agenda2FechaInicio cuando debía hacer usando el alias
La programacion en Microsoft cada ves se torna inalcanzable
- Propuesto como respuesta Willams Morales jueves, 4 de agosto de 2016 21:30
- Marcado como respuesta Laura CeglzModerator lunes, 8 de agosto de 2016 22:16
Todas las respuestas
-
-
{?} el asunto es que usando distinct me pide agrupar, pero para campos que no exiten en mis tablas; solo se agregan para requerimiento extra del usuario como indicaría esa agrupacion (
DISTINCT no requiere que las columnas que se encuentran en la lista de selección estén agrupadas, quizá te refieres a GROUP BY, pero dado que la columna [Motivo de Alta]' es un literal no requiere de agrupación. Aun así, no me queda claro lo que comentas, te agradeceré dar mayor claridad a tu requerimiento.
-
Pero el distinct no obliga hacer un group by, si tuvieras una funcion de agregacion, como un count o sum si es requerido
ok pero me piden hacer order by Nombre, y es aquí donde truena el script
Harold Chia
La programacion en Microsoft cada ves se torna inalcanzable
-
Te sugiero ordenar tus ideas, primero mencionas problemas con un DISTINCT y ahora con ORDER BY, si estas confundido nos confundes de igual manera.
{?} ok pero me piden hacer order by Nombre, y es aquí donde truena el script
¿Qué es tronar? ¿Obtienes algún mensaje de error?, te agradeceré un poco de apoyo para ayudarte. Por lo pronto yo no veo que tu lista de selección (SELECT) tenga una columna llamada Nombre (por la que intentas ordenar)
- Editado Willams Morales jueves, 4 de agosto de 2016 20:57
-
ya encontré mi error, intentaba hacer el order by
Agenda2FechaInicio cuando debía hacer usando el alias
La programacion en Microsoft cada ves se torna inalcanzable
- Propuesto como respuesta Willams Morales jueves, 4 de agosto de 2016 21:30
- Marcado como respuesta Laura CeglzModerator lunes, 8 de agosto de 2016 22:16