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

[SOLUCIONADO] Mostrar datos de 3 tablas

Estas en el tema de Mostrar datos de 3 tablas en el foro de Mysql en Foros del Web. Hola es mi primer post en el foro tengo grandes expectativas de que puedan ayudarme con esta duda que me tiene un poco loco de ...
  #1 (permalink)  
Antiguo 19/04/2016, 22:12
Avatar de enzone_10  
Fecha de Ingreso: abril-2016
Mensajes: 4
Antigüedad: 8 años
Puntos: 0
Pregunta Mostrar datos de 3 tablas

Hola es mi primer post en el foro tengo grandes expectativas de que puedan ayudarme con esta duda que me tiene un poco loco de hace unos días y que no he podido resolver

bueno este es el problema, necesito crear un archivo csv para subir posterior poder subir una carga masiva de datos a una pagina x, esta pagina tiene normas para crear el archivo en casos especiales que seria cuando hay otro impuesto o mas de 1 iva no recuperable entonces tengo que unir 3 tablas una contiene la mayoria de datos de nombre "datos" y las otras 2 iva_no recuperable y otro impuesto.


Código:
tabla datos 
ID   | USUARIO     | COMPRA_VENTA         | MNT_IVA   | MNT_TOTAL  |  PERIODO
54   |    5        |        Compra        |  1900     |   10000   |    '04-2016'
55   |    5        |        Compra        |  2666     |   25000   |    '04-2016'
56   |    5        |        Compra        |  2566     |   24580   |    '04-2016'
57   |    5        |        Compra        |  300      |   15000   |    '04-2016'
58   |    5        |        Compra        |  4500     |   40360   |    '04-2016'
59   |    5        |        Compra        |  3000     |   17000   |    '04-2016'

Código:
tabla iva_no_recuperable
ID   | ID_DATOS    | COD_IVA_NO_REC       | MNT_IVA_NO_REC  
1   |    25        |          2           |  1900     
2   |    38        |          4           |  2666     
3   |    58        |          3           |  11111    
4   |    59        |          4           |  333     
5   |    59        |          3           |  444
Código:
tabla otro_impuesto
ID   | ID_DATOS  |         COD_IMP         | TASA_IMP    | MNT_IMP  
1   |    3         |          23           |  15         |   100
2   |    5         |          25           |  1.5        |   150
3   |    6        |          20           |  15         |   900
4   |    7        |          28           |  1.93       |   800
5   |    58        |          29           |  15          |   4444
6   |    58        |          51           |  1.93        |   5555

Esta es la consulta que estoy haciendo para extraer los datos

Código MySQL:
Ver original
  1. SELECT d.ID AS 'ID',
  2. d.USUARIO AS 'CLIENTE',
  3. d.COMPRA_VENTA AS 'Compra Venta',
  4. IF(d.MNT_IVA>0,MNT_IVA,null) AS 'Monto IVA (Recuperable)',
  5. n.COD_IVA_NO_REC AS 'Codigo IVA no Rec',
  6. n.MNT_IVA_NO_REC AS 'Monto IVA no Rec',
  7. d.MNT_TOTAL AS 'Monto Total',
  8. o.COD_IMP AS 'Codigo otro impuesto',
  9. o.TASA_IMP AS 'Tasa otro impuesto',
  10. o.MNT_IMP AS 'Monto otro impuesto'
  11. FROM datos d
  12. INNER JOIN no_recuperable n ON   d.ID = n.ID_DATOS
  13. INNER JOIN otro_impuesto  o ON   d.ID = o.ID_DATOS
  14. WHERE USUARIO=5 AND COMPRA_VENTA='Compra' AND PERIODO='04-2016'

el problema es que me genera solo la fila que coincide con los id y no me sirve



necesito que en el caso de haber 1 iva no_recuperable lo muestre en su fila correspondiente pero si hay mas de uno que repita los datos comunes de la tabla datos y se agregue el código del iva no recuperable y el monto en una nueva fila, es exactamente lo mismo cuando hay 1 o mas otro_impuesto.




Espero entiendan mi problema y me ayuden que llevo varios días intentándolo y no me resulta.

cambie el inner join por el left join y a mejorado un poco la muestra de datos pero no es el resultado final que espero
Código MySQL:
Ver original
  1. SELECT d.ID AS 'ID',
  2. d.USUARIO AS 'CLIENTE',
  3. d.COMPRA_VENTA AS 'Compra Venta',
  4. IF(d.MNT_IVA>0,MNT_IVA,null) AS 'Monto IVA (Recuperable)',
  5. n.COD_IVA_NO_REC AS 'Codigo IVA no Rec',
  6. n.MNT_IVA_NO_REC AS 'Monto IVA no Rec',
  7. d.MNT_TOTAL AS 'Monto Total',
  8. o.COD_IMP AS 'Codigo otro impuesto',
  9. o.TASA_IMP AS 'Tasa otro impuesto',
  10. o.MNT_IMP AS 'Monto otro impuesto'
  11. FROM datos d
  12. LEFT JOIN no_recuperable n ON   d.ID = n.ID_DATOS
  13. LEFT JOIN otro_impuesto  o ON   d.ID = o.ID_DATOS
  14. WHERE USUARIO=5 AND COMPRA_VENTA='Compra' AND PERIODO='04-2016'

este es el resultado

Última edición por enzone_10; 19/04/2016 a las 23:01
  #2 (permalink)  
Antiguo 04/05/2016, 12:47
Avatar de enzone_10  
Fecha de Ingreso: abril-2016
Mensajes: 4
Antigüedad: 8 años
Puntos: 0
Respuesta: Mostrar datos de 3 tablas

es mejor manejar los datos con fputcsv

Etiquetas: join, select, tabla, tablas
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:26.