![]() |
sumar campos de resultados subconsultas Hola a todos, tengo una duda y es la sigueinte. resulta que necesito saber si es posible sumar (o restar) dos campos que los obtengo de una subconsulta... estos campos son los marcados en negrita. SELECT datos_empleado.nombre, datos_empleado.rut, (SELECT SUM(ansubl_i01 + ... subsil_i12) FROM anticipos WHERE datos_empleado.rut = anticipos.rut) AS subsidios, (SELECT SUM(montoco) FROM datos_pagos WHERE datos_empleado.rut = datos_pagos.rut) AS pagos, (SELECT SUM(deslic_i01 + .. deslic_i12) FROM anticipos WHERE datos_empleado.rut = anticipos.rut ) AS cobros FROM datos_empleado en algun momento intente algo como: sum(cobros + pagos), pero me daba error... no estoy seguro que se pueda hacer algo asi... alguien me podria ayudar... de ante mano se agradece toda ayuda... |
Respuesta: sumar campos de resultados subconsultas Hola Es imperativo que tengas que hacer la suma en el query? No la puedes hacer al momento de presentar los datos? |
Respuesta: sumar campos de resultados subconsultas select nombre, rut, subsidios, pagos, anticipos-cobros as pendiente from ( SELECT datos_empleado.nombre, datos_empleado.rut, (SELECT SUM(ansubl_i01 + ... subsil_i12) FROM anticipos WHERE datos_empleado.rut = anticipos.rut) AS subsidios, (SELECT SUM(montoco) FROM datos_pagos WHERE datos_empleado.rut = datos_pagos.rut) AS pagos, (SELECT SUM(deslic_i01 + .. deslic_i12) FROM anticipos WHERE datos_empleado.rut = anticipos.rut ) AS cobros FROM datos_empleado ) foo Un saludo |
Respuesta: sumar campos de resultados subconsultas Bueno ahora dejando de lado lo que querias hacer, esa select con subselects la podrias hacer con JOIN, SUM y GROUP BY y sería mucho más eficiente. Salu2 |
Respuesta: sumar campos de resultados subconsultas tengo que sumar en la consulta ya que tengo que lograr ordenar los datos (en la presnetacion) en orden > a < y < a > y se me hace mas facil hacerlo de esa forma... puedo estar en un error el cual me lo indican y lo discutimos... bueno intentare implementar la solucion propuesta y ver que tal me va con los Join o Gruop by... por que son mas optimas estas soluciones que? |
Respuesta: sumar campos de resultados subconsultas prueba esto: quita los alias de cada uno, pon los signos + o - entre ellos (yo los he puesto a ojo, para que veas cómo van), como en el ej. y pon un alias al final. SELECT datos_empleado.nombre, datos_empleado.rut, (SELECT SUM(ansubl_i01 + subsil_i12) FROM anticipos WHERE datos_empleado.rut = anticipos.rut) + (SELECT SUM(montoco) FROM datos_pagos WHERE datos_empleado.rut = datos_pagos.rut) - (SELECT SUM(deslic_i01 + deslic_i12) FROM anticipos WHERE datos_empleado.rut = anticipos.rut ) AS TOTAL FROM datos_empleado EDITO: esto puede ser una solución, pero no es lo mejor: te hago la misma recomendación que Seyko. |
Respuesta: sumar campos de resultados subconsultas sEIKO, si quiero darle un ORDER BY donde lo incluyo? SELECT datos_empleado.nombre, datos_empleado.rut, (SELECT SUM(ansubl_i01 + ... subsil_i12) FROM anticipos WHERE datos_empleado.rut = anticipos.rut) AS subsidios, (SELECT SUM(montoco) FROM datos_pagos WHERE datos_empleado.rut = datos_pagos.rut) AS pagos, (SELECT SUM(deslic_i01 + .. deslic_i12) FROM anticipos WHERE datos_empleado.rut = anticipos.rut ) AS cobros FROM datos_empleado WHERE Fecha_ret = '01/01/3000' ORDER BY subsidios ASC ) foo me da error con order by: The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified. porque ocurre este error y como lo evito? saludos y gracias por los aportes. |
Respuesta: sumar campos de resultados subconsultas La clausula de order by siempre va al final .... ) foo order by ... Es más eficiente que las subconsultas, porque por cada registro que saques se hace una subconsulta, tu tienes 3 subconsultas dentro de tu select, si tienes 1000 registros tiras 3001 consultas. salu2 |
| La zona horaria es GMT -6. Ahora son las 07:03. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.