Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

referencia cruzada sin sum

Estas en el tema de referencia cruzada sin sum en el foro de SQL Server en Foros del Web. Hola, estoy un poco entrampado con una consulta, tengo los siguientes datos: nombre_analito nombre_analisis orden14 orden15 orina examen basofilos 7965 orina examen bilirrubinas "Negativo" null ...
  #1 (permalink)  
Antiguo 03/09/2009, 09:15
 
Fecha de Ingreso: mayo-2008
Mensajes: 28
Antigüedad: 16 años
Puntos: 1
referencia cruzada sin sum

Hola, estoy un poco entrampado con una consulta, tengo los siguientes datos:

nombre_analito nombre_analisis orden14 orden15

orina examen basofilos 7965
orina examen bilirrubinas "Negativo"
null glucosa 8
null etc 36
orina examen basofilos 321
orina examen blirrubinas 32
null glucosa 342
null etc 41

lo que necesito es agrupar ambas columnas como para que no hayan espacios en blanco, lo podria hacer con un "sum", pero algunas veces los valores seran alfanumericos, alguien podria ayudarme =(. Los resultados tendrian que mostrarse asi:

orina examen basofilos 7965 321
null bilirrubina "Negativo" 32
orina examen glucosa 8 342
null etc 36 41


esta es la consulta que hago, previamente generada de una referencia cruzada:

select tx_resultado,nombre_analito,nombre_analisis
case orden14 when 1 then tx_resultado else '' end as 'Orden14'
case orden15 when 1 then tx_resultado else '' end as 'Orden15'
from tm
where OA1114 <>0 or OA1115<>0

Última edición por netSlayer; 03/09/2009 a las 09:18 Razón: se descuadra el texto.
  #2 (permalink)  
Antiguo 03/09/2009, 21:56
Avatar de Beakdan  
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 22 años, 4 meses
Puntos: 7
Respuesta: referencia cruzada sin sum

Suponiendo que para cada [nombre_analito, nombre_analisis] haya un solo orden14 o un solo orden15 (inclusivo), podrias solucionarlo así:
Código:
SELECT        nombre_analito,
            nombre_analisis,
            MAX(orden14) + ' ' + MAX(orden15) AS tx_resultado
FROM        tm
GROUP BY    nombre_analito,
            nombre_analisis
En caso de que haya nulos ya sea en orden14 u orden 15, o en el caso de que haya más de un registro para la combinación elegida como grupo el código deberá ser diferente.
Espero que sea esto lo que necesitas.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:16.