Foros del Web » Programación para mayores de 30 ;) » .NET »

Mostrar datos en dos columnas

Estas en el tema de Mostrar datos en dos columnas en el foro de .NET en Foros del Web. Hola, Tengo una select que me devuelve una tabla con valores de la siguiente manera: Nombre1 tal NULL NULL NULL diametro NULL 18 NULL NULL ...
  #1 (permalink)  
Antiguo 12/05/2011, 00:39
 
Fecha de Ingreso: julio-2008
Mensajes: 43
Antigüedad: 15 años, 9 meses
Puntos: 3
Mostrar datos en dos columnas

Hola,
Tengo una select que me devuelve una tabla con valores de la siguiente manera:

Nombre1 tal NULL NULL NULL
diametro NULL 18 NULL NULL
Trabajador NULL NULL 25 NULL
VerificacionNULL NULL NULL True

Me gustaria mostrar los datos en dos columnas, como son de diferente tipo no los puedo unir en una, pero estoy haciendo un cast as varchar en la llamada sql para pasarlos todos al mismo tipo (varchar) y así poderlos mostrar juntos. Me los sigue separando por columnas.

SELECT CASTCampsPossibles.Descripcio, CAST(Valors.Data AS varchar(10)), CAST(Valors.ValorReal AS varchar(10)), CAST(Valors.Bool AS varchar(10)), CAST(Valors.Int AS varchar(10)), CAST(Valors.Varchar AS varchar(10)) FROM CampsPossibles INNER JOIN CampsRegistres ON CampsPossibles.IdCamp = CampsRegistres.IdCamp INNER JOIN Registres ON CampsRegistres.IdReg = Registres.IdReg INNER JOIN Valors ON CampsRegistres.IdCamp = Valors.IdCamp AND CampsRegistres.IdReg = Valors.IdReg AND CampsRegistres.IdCamp = Valors.IdCamp WHERE Valors.IdMedicio = 1"

Los datos los quiero mostrar en un datagrid. Estoy trabajando en VB.

Como deberia hacerlo?
  #2 (permalink)  
Antiguo 12/05/2011, 01:28
 
Fecha de Ingreso: julio-2008
Mensajes: 43
Antigüedad: 15 años, 9 meses
Puntos: 3
Respuesta: Mostrar datos en dos columnas

Encontre la solucion:
SELECT CampsPossibles.Descripcio, CAST(Valors.Data AS varchar(15))
FROM CampsPossibles INNER JOIN
CampsRegistres ON CampsPossibles.IdCamp = CampsRegistres.IdCamp INNER JOIN
Registres ON CampsRegistres.IdReg = Registres.IdReg INNER JOIN
Valors ON CampsRegistres.IdCamp = Valors.IdCamp AND CampsRegistres.IdReg = Valors.IdReg AND CampsRegistres.IdCamp = Valors.IdCamp
WHERE Valors.IdMedicio = 1 AND Valors.Data IS NOT NULL
UNION
SELECT CampsPossibles.Descripcio, CAST(Valors.Int AS varchar(15))
FROM CampsPossibles INNER JOIN
CampsRegistres ON CampsPossibles.IdCamp = CampsRegistres.IdCamp INNER JOIN
Registres ON CampsRegistres.IdReg = Registres.IdReg INNER JOIN
Valors ON CampsRegistres.IdCamp = Valors.IdCamp AND CampsRegistres.IdReg = Valors.IdReg AND CampsRegistres.IdCamp = Valors.IdCamp
WHERE Valors.IdMedicio = 1 AND Valors.Int IS NOT NULL
UNION
SELECT CampsPossibles.Descripcio, CAST(Valors.Varchar AS varchar(15))
FROM CampsPossibles INNER JOIN
CampsRegistres ON CampsPossibles.IdCamp = CampsRegistres.IdCamp INNER JOIN
Registres ON CampsRegistres.IdReg = Registres.IdReg INNER JOIN
Valors ON CampsRegistres.IdCamp = Valors.IdCamp AND CampsRegistres.IdReg = Valors.IdReg AND CampsRegistres.IdCamp = Valors.IdCamp
WHERE Valors.IdMedicio = 1 AND Valors.Varchar IS NOT NULL
UNION
SELECT CampsPossibles.Descripcio, CAST(Valors.Bool AS varchar(15))
FROM CampsPossibles INNER JOIN
CampsRegistres ON CampsPossibles.IdCamp = CampsRegistres.IdCamp INNER JOIN
Registres ON CampsRegistres.IdReg = Registres.IdReg INNER JOIN
Valors ON CampsRegistres.IdCamp = Valors.IdCamp AND CampsRegistres.IdReg = Valors.IdReg AND CampsRegistres.IdCamp = Valors.IdCamp
WHERE Valors.IdMedicio = 1 AND Valors.Bool IS NOT NULL
UNION
SELECT CampsPossibles.Descripcio, CAST(Valors.ValorReal AS varchar(15))
FROM CampsPossibles INNER JOIN
CampsRegistres ON CampsPossibles.IdCamp = CampsRegistres.IdCamp INNER JOIN
Registres ON CampsRegistres.IdReg = Registres.IdReg INNER JOIN
Valors ON CampsRegistres.IdCamp = Valors.IdCamp AND CampsRegistres.IdReg = Valors.IdReg AND CampsRegistres.IdCamp = Valors.IdCamp
WHERE Valors.IdMedicio = 1 AND Valors.ValorReal IS NOT NULL

Si teneis alguna propuesta mas eficiente o como hacerlo con una consulta más corta hacedmelo saber porfavor!

Un saludo

Etiquetas: columnas
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 08:50.