![]() |
Consulta condicional Hola, tengo la siguiente consulta: SELECT FACTURACION.Codigo, FACTURACION.Referencia, referencias.PROYECTO, FACTURACION.Fecha, ROUND( (((FACTURACION.Importe_1+FACTURACION.Importe_2+FAC TURACION.Importe_3+FACTURACION.Importe_4+FACTURACI ON.ImpotroIVA)-(FACTURACION.Visados+FACTURACION.Retenciones))*((F ACTURACION.IVA/100)+1))+FACTURACION.ImpsinIVa ,2) AS A_COBRAR, ROUND( IF(sum(COBROS.Cobrado)>0.01,sum(COBROS.Cobrado), 0) ,2) AS COBRADO, ROUND( ((((FACTURACION.Importe_1+FACTURACION.Importe_2+FA CTURACION.Importe_3+FACTURACION.Importe_4+FACTURAC ION.ImpotroIVA)-(FACTURACION.Visados+FACTURACION.Retenciones))*((F ACTURACION.IVA/100)+1))+FACTURACION.ImpsinIVa)- IF(sum(COBROS.Cobrado)>0.01,sum(COBROS.Cobrado), 0) ,2) AS PENDIENTE FROM (FACTURACION LEFT JOIN referencias ON FACTURACION.Referencia=referencias.REFERENCIA) LEFT JOIN COBROS ON FACTURACION.Codigo=COBROS.Codigo_fra GROUP BY FACTURACION.Codigo,FACTURACION.Referencia,referenc ias.PROYECTO, FACTURACION.Fecha ORDER BY Fecha DESC Mi problema viene al darle la condicón 'PENDIENTE > 0' he probado con: WHERE (ROUND( ((((FACTURACION.Importe_1+FACTURACION.Importe_2+FA CTURACION.Importe_3+FACTURACION.Importe_4+FACTURAC ION.ImpotroIVA)-(FACTURACION.Visados+FACTURACION.Retenciones))*((F ACTURACION.IVA/100)+1))+FACTURACION.ImpsinIVa)- IF(sum(COBROS.Cobrado)>0.01,sum(COBROS.Cobrado), 0) ,2))>0 Pero no funciona. ¿Qué puedo hader? |
Re: Consulta condicional no puedes utilizar un alias en el where. WHERE ROUND( ((((FACTURACION.Importe_1+FACTURACION.Importe_2+FA CTURACION.Importe_3+FACTURACION.Importe_4+FACTURAC ION.ImpotroIVA)-(FACTURACION.Visados+FACTURACION.Retenciones))*((F ACTURACION.IVA/100)+1))+FACTURACION.ImpsinIVa)- IF(sum(COBROS.Cobrado)>0.01,sum(COBROS.Cobrado), 0) ,2)>0 Si lo dejas asi, le he quitado el parentesis que envuelve el round deberia funcionar. Si no te funciona hazlo con una subconsulta, que quizas sea más rapido que meter todo el calculo en el where. Salu2 |
Re: Consulta condicional Lo he solucionado por medio de un CREATE TABLE y una segunda consulta, ya que la solución propuesta no me funciona y no consigo solucionarlo por medio de subconsulta. Te agradeciría que me explicases lo de la subconsulta. Unj saludo |
Re: Consulta condicional BUenas, lo de crear una tabla no es buena solucion. Subconsulta: select sub.codigo, sub.pendiente from ( SELECT FACTURACION.Codigo, ... ROUND(((((....))))) as pendiente FROM tus_tablas WHERE ... ) sub where sub.pendiente > 0; Ahora si puedes utilizar pendiente. Salu2 |
Re: Consulta condicional Muchas Gracias. De esta forma es realmente sencillo. |
| La zona horaria es GMT -6. Ahora son las 21:33. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.