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

Ayuda urgente con query

Estas en el tema de Ayuda urgente con query en el foro de Mysql en Foros del Web. Que tal compañeros estoy en muchos aprietos y necesito ayuda urgente estoy poniendo el siguiente query SELECT solicitud_viat.`Folio_solicitud` AS solicitud_viat_Folio_solicitud, solicitud_viat.`Origen` AS solicitud_viat_Origen, solicitud_viat.`Destino` AS ...
  #1 (permalink)  
Antiguo 11/05/2009, 10:30
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años
Puntos: 0
Ayuda urgente con query

Que tal compañeros estoy en muchos aprietos y necesito ayuda urgente estoy poniendo el siguiente query

SELECT
solicitud_viat.`Folio_solicitud` AS solicitud_viat_Folio_solicitud,
solicitud_viat.`Origen` AS solicitud_viat_Origen,
solicitud_viat.`Destino` AS solicitud_viat_Destino,
solicitud_viat.`Dia_inicio` AS solicitud_viat_Dia_inicio,
solicitud_viat.`Mes_inicio` AS solicitud_viat_Mes_inicio,
solicitud_viat.`Anio_inicio` AS solicitud_viat_Anio_inicio,
empleados.`Nombre` AS empleados_Nombre,
conceptos.`Concepto` AS conceptos_Concepto,
conceptos.`Cantidad` AS conceptos_Cantidad,
conceptos.`Porcentaje_iva` AS conceptos_Porcentaje_iva,
conceptos.`Iva_cant` AS conceptos_Iva_cant
FROM
`solicitud_viat` solicitud_viat INNER JOIN `empleados` empleados ON solicitud_viat.`Id_empleado` = empleados.`Id_empleado`
INNER JOIN `conceptos` conceptos ON solicitud_viat.`Folio_solicitud` = conceptos.`Folio_justif`,
`justif_gastos` justif_gastos
where solicitud_viat.`Folio_solicitud`=2

Me trae todos estos datos pero me los repite cinco veces todos no se que esté haciendo mal pero lo que yo me imagino es que está mal la relación de la tabla solicitud_viat con la de conceptos. Ahora pongo la información de mis tablas:

SOLICITUD_VIAT CONCEPTOS EMPLEADOS
Id_empleado Id_concepto Id_empleado
Origen Folio_justif Nombre
Destino Concepto
Dia_inicio Cantidad
Mes_inicio Porcentaje_iva
Anio_inicio Iva_cant

Si alguien que me pueda ayudar requiere algo mas de información solo diganme y la pongo. Gracias
  #2 (permalink)  
Antiguo 11/05/2009, 10:42
Avatar de jdelrioj  
Fecha de Ingreso: julio-2008
Ubicación: La Rambla , Córdoba -> Andalucía
Mensajes: 340
Antigüedad: 15 años, 9 meses
Puntos: 13
Respuesta: Ayuda urgente con query

yo creo k en el where deberias de poner ademas solicitud_viat.id_empleado=conceptos.id_concepto
  #3 (permalink)  
Antiguo 11/05/2009, 11:14
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda urgente con query

Ahora no me manda ningun registro
  #4 (permalink)  
Antiguo 11/05/2009, 11:23
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Ayuda urgente con query

INNER JOIN `conceptos` conceptos ON solicitud_viat.`Folio_solicitud` = conceptos`Folio_justif`,
`justif_gastos` justif_gastos
where solicitud_viat.`Folio_solicitud`=2

el problema lo tienes con lo que hay en negrita. No sé si quieres usar el AND, pero debías decirnos qué relaciones buscas.

INNER JOIN `conceptos` conceptos ON solicitud_viat.`Folio_solicitud` = conceptos AND tabla.Folio_justif =
`justif_gastos` justif_gastos
where solicitud_viat.`Folio_solicitud`=2

Me he liado un poco con los nombres de campos y tablas, pero esa coma escrita hace que el inner join se haga con dos campos en modo OR.
Usa alias y escribe la tabla y su campo separados con punto y con el orden tabla.campo

Revisa un poco y vuelve a probar.

Última edición por jurena; 11/05/2009 a las 11:28
  #5 (permalink)  
Antiguo 11/05/2009, 12:02
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda urgente con query

Cita:
Iniciado por jurena Ver Mensaje
INNER JOIN `conceptos` conceptos ON solicitud_viat.`Folio_solicitud` = conceptos`Folio_justif`,
`justif_gastos` justif_gastos
where solicitud_viat.`Folio_solicitud`=2

el problema lo tienes con lo que hay en negrita. No sé si quieres usar el AND, pero debías decirnos qué relaciones buscas.

INNER JOIN `conceptos` conceptos ON solicitud_viat.`Folio_solicitud` = conceptos AND tabla.Folio_justif =
`justif_gastos` justif_gastos
where solicitud_viat.`Folio_solicitud`=2

Me he liado un poco con los nombres de campos y tablas, pero esa coma escrita hace que el inner join se haga con dos campos en modo OR.
Usa alias y escribe la tabla y su campo separados con punto y con el orden tabla.campo

Revisa un poco y vuelve a probar.
Perdón por lo de las tablas no sabía que se iban a ver así las pongo otra vez

SOLICITUD_VIAT
Id_empleado
Origen
Destino
Dia_inicio
Mes_inicio
Anio_inicio

CONCEPTOS
Id_concepto
Folio_justif
Concepto
Cantidad
Porcentaje_iva
Iva_cant

EMPLEADOS
Id_empleado
Nombre

Listo y no se si me podrías explicar otra vez lo de la coma, verás este query lo estoy haciendo para un reporte con ireports y usé el diseñador de querys porque no tengo muchos conocimientos en mysql y el diseñador me puso así la consulta
Gracias
  #6 (permalink)  
Antiguo 11/05/2009, 12:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Ayuda urgente con query

No veo en tu lista de campos ese Folio_solicitud de SOLICITUD_VIAT. ¿Existe?
Si es así y la relación es la adecuada, prueba esta consulta. Te he quitado todos los alias. Luego se podrán añadir

sv.Folio_solicitud,
sv.Origen,
sv.Destino,
sv.Dia_inicio,
sv.Mes_inicio,
sv.Anio_inicio,
e.Nombre,
c.Concepto,
c.Cantidad,
c.Porcentaje_iva,
c.Iva_cant
FROM
solicitud_viat sv INNER JOIN empleados e ON sv.Id_empleado = e.Id_empleado
INNER JOIN conceptos c ON sv.Folio_solicitud = c.Folio_justif
where sv. Folio_solicitud =2
  #7 (permalink)  
Antiguo 11/05/2009, 13:05
 
Fecha de Ingreso: abril-2009
Mensajes: 78
Antigüedad: 15 años
Puntos: 0
Respuesta: Ayuda urgente con query

Cita:
Iniciado por jurena Ver Mensaje
No veo en tu lista de campos ese Folio_solicitud de SOLICITUD_VIAT. ¿Existe?
Si es así y la relación es la adecuada, prueba esta consulta. Te he quitado todos los alias. Luego se podrán añadir

sv.Folio_solicitud,
sv.Origen,
sv.Destino,
sv.Dia_inicio,
sv.Mes_inicio,
sv.Anio_inicio,
e.Nombre,
c.Concepto,
c.Cantidad,
c.Porcentaje_iva,
c.Iva_cant
FROM
solicitud_viat sv INNER JOIN empleados e ON sv.Id_empleado = e.Id_empleado
INNER JOIN conceptos c ON sv.Folio_solicitud = c.Folio_justif
where sv. Folio_solicitud =2
Perdón se me olvidó poner Folio_solicitud pero si está en la base de datos ya lo probé y funcionó muchísimas gracias me ayudaste mucho
  #8 (permalink)  
Antiguo 11/05/2009, 13:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Ayuda urgente con query

Me alegro, pero ojo que si en programación cargas con los alias, tendrás que volver a ponerlos si no quieres volver a no ver nada.
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 06:17.