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

Ayuda con consulta por fa

Estas en el tema de Ayuda con consulta por fa en el foro de Mysql en Foros del Web. hola buen dia tengo el siguiente problema: tengo 3 tablas. compra1,factura1,factura2 en compra1 campo id_factura id_factura relaciona a tablas factura1 y factura2 en facturas1 y ...
  #1 (permalink)  
Antiguo 27/02/2009, 10:20
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
De acuerdo Ayuda con consulta por fa

hola buen dia
tengo el siguiente problema:
tengo 3 tablas.
compra1,factura1,factura2

en compra1 campo id_factura
id_factura relaciona a tablas factura1 y factura2

en facturas1 y facturas2 campo fecha_elabora

a hora como puedo hacer para que la consulta me arroje

selecciona todo de compra1 donde la factua1 y factura2 se han del 2008

ayuda por fa

realizo la relacion con inner join y no me trae resultados...

me pueden ayudar??
  #2 (permalink)  
Antiguo 27/02/2009, 10:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con consulta por fa

No sé si he entendido bien la estructura y tampoco tengo los nombres de los campos de las tablas, pero te diré que lo que quieres es traerte de dos tablas relacionadas con la tabla compra1, pero que no tienen relación entre sí. Creo que deberías utilizar esto o algo parecido
Código sql:
Ver original
  1. (SELECT compra1.campo1, factura1.campo1 CAMPO, factura1.fecha_elabora FECHA FROM compra1 INNER JOIN factura1 ON factura1.id = compra1.idfactura WHERE YEAR (factura1.fecha_elabora) = 2008)
  2. UNION ALL
  3. (SELECT compra1.campo1, factura2.campo1 CAMPO, factura2.fecha_elabora FECHA FROM compra1 INNER JOIN factura2 ON factura2.id = compra1.idfactura WHERE YEAR (factura2.fecha_elabora)=2008) ORDER BY CAMPO
  #3 (permalink)  
Antiguo 27/02/2009, 10:44
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Ayuda con consulta por fa

ok gracias por contestar.
lo que pasa que factura1 y factura2 no tienen relacion en si los mismos campos

has de cuenta q facturas1 son las facturas(mexico) y facturas2 son invoices(usa)
  #4 (permalink)  
Antiguo 27/02/2009, 11:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con consulta por fa

No importa, mientras los campos sean del mismo tipo y los cargues con el alias que pongas o con el nombre que tenga en la tabla que está en el primer select.
De todas formas, ponnos datos, aunque sean inventados de tus tablas y dinos qué quieres sacar. Creo que el camino es este, pero necesito entender mejor lo que tienes y lo que quieres sacar.
  #5 (permalink)  
Antiguo 27/02/2009, 12:54
Avatar de LuZBinG  
Fecha de Ingreso: enero-2008
Mensajes: 407
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Ayuda con consulta por fa

gracias
ok ya realice la consulta con union
pero a hora necesito sumar un campo monto
sum()
lo que pasa puedo tener una sola factura para diferentes numeros de compras
ejemplo
tengo resultado a si:


factura |compra | monto
3 23
3 24
3 25


el campo monto esta en facturas1 y facturas2

a qui esta la consulta
Código:

select compra.*,clientes.Nombre,invoice1.monto
FROM
`compra`
Inner Join `clientes` ON `compra`.`cve_compra` = `clientes`.`idCliente`
Inner Join `invoice1` ON `compra`.`invoice` = `invoice1`.`idinvoice`
where  invoice1.fecha_elabora like '2008%'

union all select compra.*,clientes.Nombre,invoice2.monto
from 
compra
Inner Join `clientes` ON `compra`.`cve_compra` = `clientes`.`idCliente`
Inner Join `invoice2` ON `compra`.`invoice` = `invoice2`.`idinvoice`
where  invoice2.fecha_elabora like '2008%'
lo que quiero es agrupar

por compra
a si
compra|
23
24
25
tienen la factura 3

se puede o no me entendieron

gracias
  #6 (permalink)  
Antiguo 27/02/2009, 14:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ayuda con consulta por fa

No sé si te he entendido del todo.
Imagino que tienes una tabla compra con referencias a las facturas e invoice1, invoice2 con números que pueden coincidir y que están relacionados con la referencia de compra. Si quieres sumar el total de todos los montos de invoice1, e invoice2 que referidos a la compra cuya referencia es 1, así podrías conseguirlo. Probablemente haya soluciones mejores, pero sólo se me ocurre esta. Pero sigo sin estar seguro de responder a lo que quieres.

SELECT t1.invoice, T1.TOTAL1 + t2.total2
FROM (

SELECT sum( invoice1.monto ) TOTAL1, invoice
FROM `compra`
INNER JOIN invoice1 ON invoice1.idInvoice = compra.invoice
WHERE invoice =1
AND year( invoice1.fecha_elabora ) =2008
GROUP BY invoice
)T1, (

SELECT sum( invoice2.monto ) total2, invoice
FROM `compra`
INNER JOIN invoice2 ON invoice2.idInvoice = compra.invoice
WHERE invoice =1
AND year( invoice2.fecha_elabora ) =2008
GROUP BY invoice
)T2
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 03:45.