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

Mostrar datos de diferentes tablas

Estas en el tema de Mostrar datos de diferentes tablas en el foro de SQL Server en Foros del Web. Hola tengo una base de datos llamada PRUEBA y dentro las tablas ID_USUARIO Y TRAFICO con los siguientes datos TRAFICO = FACTURA , MOVIL, ITEM, ...
  #1 (permalink)  
Antiguo 03/04/2009, 15:09
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 1 mes
Puntos: 7
Pregunta Mostrar datos de diferentes tablas

Hola tengo una base de datos llamada PRUEBA y dentro las tablas ID_USUARIO Y TRAFICO con los siguientes datos

TRAFICO = FACTURA , MOVIL, ITEM, CONCEPTO, CORRELATIVO, SENTIDO, DISCADO DESTINO, FECHA, HORARIO, SERVICIO, DURACI0N, UNIDAD, VALOR, SOBRECARGO, TIPO_LLAMADA.(SIN primary key pero de ser necesaria una tendria que ser "FACTURA")

ID_USUARIO = NUM_CHIP, NUM_SERIE, APELLIDOP, APELLIDOM, NOMBRES, USUARIO, ID, EQUIPO, MOVIL, PERFIL, LIM_MINUTOS, LIM_SME, EMPRESA, FECHAIN, FECHAOUT, NOTAS. (primary key ID)

Y necesito hacer una conexion para poder mostrar los datos en una tabla de asp con los siguientes datos: de ID_USUARIO: USUARIO y de TRAFICO: VALOR,
SOBRECARGO, SERVICIO en ese order

mi consulta es como quedaria la sentencia sql para poder mostrar los datos en la tabla?

gracias por su ayuda
  #2 (permalink)  
Antiguo 03/04/2009, 15:34
Avatar de -rommel_  
Fecha de Ingreso: junio-2008
Ubicación: Lima
Mensajes: 360
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Mostrar datos de diferentes tablas

BUeno; para hacer juntura a las 2 tablas, necesitas 2 campos que tengan el mismo tipo de dato y la misma longitud como minimo y de preferencia que sean claves ( principales o foraneas)

En tu caso el unico campo que veo que coincide es "MOVIL", entonces hagámosle la juntura con "MOVIL"

Código:
Select Usu.Usuario, Tra.Valor, Tra.SobreCargo, Tra.Servicio
from Trafico Tra
inner join Id_Usuario Usu On Usu.Movil = Tra.Movil
Listo Doctorcito; ojala sea de ayuda en algo.

Saludos :D
  #3 (permalink)  
Antiguo 06/04/2009, 08:28
Avatar de TonyChile  
Fecha de Ingreso: marzo-2009
Ubicación: Maipú, Santiago
Mensajes: 422
Antigüedad: 15 años, 1 mes
Puntos: 7
Respuesta: Mostrar datos de diferentes tablas

Gracias por la respuesta yo habia tratado algo asi

SQL8= "SELECT ID_USUARIO.ID, TRAFICO.VALOR, TRAFICO.SOBRECARGO, TRAFICO.SERVICIO FROM TRAFICO CROSS JOIN ID_USUARIO"

pero se demora mucho ya que tengo + de 3.000.000 de registros.
Entonces sale el error de memoria insuficiente.

claro en el sql server no tengo estos problemas se demora unos segundos y me muestra el resultado que quiero pero en la pagina que estoy desarrollando

AUNQUE estoy usando el que me dijiste

Cita:
Select Usu.Usuario, Tra.Valor, Tra.SobreCargo, Tra.Servicio
from Trafico Tra
inner join Id_Usuario Usu On Usu.Movil = Tra.Movil
Pero de esta forma para poder mostrar los datos en la pagina ASP tube q reducir un poco la cantidad de registros a mostrar por intermedio del where

Código:
SELECT     Usu.USUARIO, Tra.VALOR, Tra.SOBRECARGO, Tra.SERVICIO
FROM         TRAFICO Tra INNER JOIN
                      ID_USUARIO Usu ON Usu.MOVIL = Tra.MOVIL
WHERE     (Tra.FACTURA = 16093112) AND (Usu.ID = 1)
ORDER BY Tra.SERVICIO
Pero mi problema ahora es que dentro de la Tra.SERVICIO vienen distintos tipos de datos: (BAM, RPV, TEL, MMS, SME, SMR, TEL, TLL ) Los que indican solo el tipo de servicio utilizado por el usuario

pero aparecen en 0 cuando lo que necesito es que me muestre el tipo de servicio por separado por ejemplo BAM con Valor = 'x' y asi con todos, la cantidad en dinero de ellos VALOR.
Pero por el contrario lo que hace es mostrar el listado 1 por 1

Y como puedo hacer para que de esa consulta me muestre la ultima Tra.FACTURA para que siempre sea la mayor en vez de como esta en el WHERE (Tra.FACTURA = 16093112). Porq si se agrega una factura de todas formas mostraria la indicada en el where y eso no me sirve

Agradeceria que me sigan ayudando GRACIAS

Última edición por TonyChile; 06/04/2009 a las 09:24
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:21.