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 originald.COMPRA_VENTA
AS 'Compra Venta',IF(d.MNT_IVA
>0,MNT_IVA
,null) AS 'Monto IVA (Recuperable)', n.COD_IVA_NO_REC
AS 'Codigo IVA no Rec',n.MNT_IVA_NO_REC
AS 'Monto IVA no Rec',d.MNT_TOTAL
AS 'Monto Total',o.COD_IMP
AS 'Codigo otro impuesto',o.TASA_IMP
AS 'Tasa otro impuesto',o.MNT_IMP
AS 'Monto otro impuesto'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 originald.COMPRA_VENTA
AS 'Compra Venta',IF(d.MNT_IVA
>0,MNT_IVA
,null) AS 'Monto IVA (Recuperable)', n.COD_IVA_NO_REC
AS 'Codigo IVA no Rec',n.MNT_IVA_NO_REC
AS 'Monto IVA no Rec',d.MNT_TOTAL
AS 'Monto Total',o.COD_IMP
AS 'Codigo otro impuesto',o.TASA_IMP
AS 'Tasa otro impuesto',o.MNT_IMP
AS 'Monto otro impuesto'WHERE USUARIO
=5 AND COMPRA_VENTA
='Compra' AND PERIODO
='04-2016'
este es el resultado