FILTRAR VALORES NULL

0

Como hago para filtrar valores null, estoy tratando de crear un reporte mensual a partir de la fecha, esta la convierto a mes pero hay algunas lineas que no tienen fecha y estas al hacer la conversion a mes me arroja valor NULL, necesito dejar todos los valores menos los null.

(123 null; 456 enero; ...; 789 diciembre) ahora

(456 enero; ...; 789 diciembre) lo que necesito

Este query es la ultima version de los que he probado:

selectsum(account_invoice.amount_total), CASE to_char(date_invoice,'mm') WHEN '01' THEN  'Enero'  WHEN '02' THEN 'Febrero'  WHEN '03' THEN  'Marzo' WHEN '04' THEN  'Abril' WHEN '05' THEN  'Mayo' WHEN '06' THEN  'Junio' WHEN '07' THEN  'Julio' WHEN '08' THEN  'Agosto' WHEN '09' THEN  'Septiembre' WHEN '10' THEN  'Octubre' WHEN '11' THEN  'Noviembre' WHEN '12' THEN 'Diciembre' WHEN IS NULL THEN 'Nulo' endfrom account_invoice
GROUP bycase to_char(date_invoice,'mm') WHEN '01' THEN  'Enero'  WHEN '02' THEN 'Febrero'  WHEN '03' THEN  'Marzo' WHEN '04' THEN  'Abril' WHEN '05' THEN  'Mayo' WHEN '06' THEN  'Junio' WHEN '07' THEN  'Julio' WHEN '08' THEN  'Agosto' WHEN '09' THEN  'Septiembre' WHEN '10' THEN  'Octubre' WHEN '11' THEN  'Noviembre' WHEN '12' THEN 'Diciembre' WHEN IS NULL THEN 'Nulo' END

Gracias por la ayuda

detr820's picture
Joined: Aug 16 2013 - 7:36am
Last seen: 4 years 4 months ago

English:

 
How do I filter out null values​​, I'm trying to create a monthly report from the date this convert it to month but there are some lines that are not dated and these to make the conversion to NULL month throws me, I need to leave all under the null values​​.

(123 null, 456 in January, ..., December 789) now

(January 456, ..., 789 December) I need

This query is the latest version of the ones I tried:
 
{sql query}
 
Thanks for the help

 

djohnson53 - 6 years 3 months ago

1 Answer:

0

Casi resolvi el problema sustituyendo "(date_invoice, 'mm')" por "coalesce(date_invoice, currente_date), 'mm')".

Estoy usando Openerp para facturar, en este sistema se crea un pedido de ventas y luego se manda a facturar, cuando el documento llega al modulo de facturacion la fecha queda en blanco hasta que la persona encargada imprime la factura.

Lo que me queda es ordenar por mes, pero cuando lo hago me crea varias lineas un mismo mes, sin el order by, quedan agrupados pero no en orden.

SELECT
 
CASE to_char(COALESCE(date_invoice, CURRENT_DATE),'mm')
WHEN '01' THEN  'Enero'  WHEN '02' THEN 'Febrero'  WHEN '03' THEN 
'Marzo' WHEN '04' THEN  'Abril' WHEN '05' THEN  'Mayo' WHEN '06' THEN 
'Junio' WHEN '07' THEN  'Julio' WHEN '08' THEN  'Agosto' WHEN '09' THEN
'Septiembre' WHEN '10' THEN  'Octubre' WHEN '11' THEN  'Noviembre' WHEN
'12' THEN 'Diciembre' END AS mes,
 
SUM(CASE TYPE WHEN 'out_invoice' THEN amount_untaxed ELSE -amount_untaxed END) AS venta
 
 
FROM
account_invoice WHERE TYPE IN ('out_invoice','out_refund')
 
GROUP BY
CASE
to_char(COALESCE(date_invoice, CURRENT_DATE),'mm') WHEN '01' THEN 
'Enero'  WHEN '02' THEN 'Febrero'  WHEN '03' THEN  'Marzo' WHEN '04'
THEN  'Abril' WHEN '05' THEN  'Mayo' WHEN '06' THEN  'Junio' WHEN '07'
THEN  'Julio' WHEN '08' THEN  'Agosto' WHEN '09' THEN  'Septiembre' WHEN
'10' THEN  'Octubre' WHEN '11' THEN  'Noviembre' WHEN '12' THEN
'Diciembre' END 

detr820's picture
Joined: Aug 16 2013 - 7:36am
Last seen: 4 years 4 months ago
Feedback
randomness