Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/10/2011, 18:20
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: uso de alias de un campo

hola cacr.

veo dos cosas.
Para asignarle un alias a la sentencia CASE se recomienda encerrar esta entre parentesis.
(CASE
WHEN (recibo.reciboc03::integer % 2) = 0 THEN 'Segunda'::text
ELSE 'Primera'::text
END) AS quincena


Lo segundo que veo es la agrupación. Quincena y titulo son campos creados en memoria, pero igual harán parte de la consulta, por lo que te exigirá que también sean incluidos como campos.


Lo que se me ocurre es otro nivel de subconsulta.
Código SQL:
Ver original
  1. SELECT reciboc03,reciboc04,reciboc28,quincena,titulo
  2. FROM
  3. (
  4. SELECT recibo.reciboc03, recibo.reciboc04, recibo.reciboc28,
  5.         (CASE
  6.             WHEN (recibo.reciboc03::INTEGER % 2) = 0 THEN 'Segunda'::text
  7.             ELSE 'Primera'::text
  8.         END) AS quincena,
  9.        (CASE reciboc04
  10.         WHEN 'EM' THEN quincena ||' Quincena - '|| mes ||' - '|| agno ||')'
  11.         WHEN 'OB' THEN 'Semana '||reciboc03||')'
  12.         ELSE reciboc28
  13.     END) AS titulo
  14. FROM recibo
  15. ) AS t
  16. GROUP BY reciboc03,reciboc04,reciboc28,quincena,titulo;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming