![]() |
Colocar el resultado en una columna u Otra
Hola foro:
Tengo una tabla con dos campos, COLUMNA e IMPORTE, donde columna puede ser 1,2 o 3, Ejemplo COLUMNA-IMPORTE 1--------------100 2---------------10 3--------------(50) necesito hacer una consulta que devuelva como resultado Sueldos---Otros---Retenciones ----100 -------------10 --------------------------(50) O sea, que coloque el resultado de IMPORTE en cada columna según el campo Columna Sería algo como Select IMPORTE (si columna es 1),IMPORTE (si columna es 2), IMPORTE(si columna es 3) Bueno, desde ya perdón por el delirio y gracias por su atención. |
Esto debe funcionar:
|
Gracias
SI, anda. Cómo no se me ocurrió!!!:eek:
Mejor que me vaya a dormir un rato. Gracias |
Otro comentario y pedido 2
Pude solucionar utilizando la consulta sugerida por Neftali, pero sin las opciones NULL, porque me daba un error
Data type unknown la solución que encontré fué reemplazarlos por 0.00. Con o (cero) también aparecía el mismo error. ¿?. Quedó así. select IMPORTE as Sueldos, 0.00 as Otros, 0.00 as Retenciones from tabla where COlumna=1 union select 0.00 as Sueldos, IMPORTE as Otros, 0.00 as Retenciones from tabla where COlumna=2 union select 0.00 as Sueldos, 0.00 as Otros, IMPORTE as Retenciones from tabla where COlumna=3 Pedido 2 Se puede obtener en una consulta los tres totales en una sola fila?. Utilizo group by en cada consulta pero me hace un total por cada una de ellas. la idea es que quede Importe---Otros---Retenciones ----100-----10-----------(50) y me sale Importe---Otros---Retenciones ----100 -------------10 --------------------------(50) Queda claro que esta segunda consulta es para mostrar los totales por cada columna. Se puede hacer con 3 consultas, pero con una sola también se debe poder hacer (creo). Como siempre muchas gracias por su atención. |
Que tal Carmelo
Si utilizas Firebird 1.5, sería algo así para obtener un solo renglón SELECT SUM(CASE columna WHEN 1 THEN importe ELSE 0 END) AS sueldos, SUM(CASE columna WHEN 2 THEN importe ELSE 0 END) AS otros, SUM(CASE columna WHEN 3 THEN importe ELSE 0 END) AS retenciones FROM tabla WHERE empleado = 1 Espero que sea lo que necesitas Saludos Bismarck |
La franja horaria es GMT +2. Ahora son las 12:59:31. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi