Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-12-2016
ronalg ronalg is offline
Miembro
 
Registrado: may 2003
Ubicación: Sucre - Bolivia
Posts: 68
Poder: 21
ronalg Va por buen camino
Union + Null + campos "constantes"

Muy buenas tardes en mi llajta (=> significa terruño o pueblito)
Tengo una consulta que es la union de 3 sub sconsultas

Código SQL [-]
Select
     'Ventas al contado' as Nombre,
     cast(a.fecha as date) as Fecha,
     count (case when a.tipo_transaccion<>'' then 1 else null end) AS cant_trans,
     sum(a.total_compra_venta) as monto

from tb_compras_ventas a

where a.ref_tipo_cv=0 --contado
  and a.fecha between :f_ini and :f_fin
  and a.tipo_transaccion=:tipo_trans
  and (0=:cod_usuario or a.ref_personal_registro=:cod_usuario)
  and ((0=:cod_cliente or a.ref_cliente=:cod_cliente) and (0=:cod_proveedor or a.ref_proveedor=:cod_proveedor))
group by fecha

union all

select
     'Cuotas' as Nombre,
     cast(b.fecha_hora as date) as Fecha,
     count (case when b.tipo_transaccion<>'' then 1 else null end) AS cant_trans,
     sum(b.monto_cuota) as Monto
from tb_cuotas_cv b left join tb_compras_ventas b1 on b.ref_compra_venta=b1.codigo
where b.tipo_transaccion=:tipo_trans
  and b.fecha_hora between :f_ini and :f_fin
  and b.monto_cuota>0
  and (0=:cod_usuario or b.ref_personal_registro=:cod_usuario)
  and ((0=:cod_cliente or b1.ref_cliente=:cod_cliente) and (0=:cod_proveedor or b1.ref_proveedor=:cod_proveedor))
group by fecha

union all

select
     'Facturas' as Nombre,
     cast (d.fechahora as date) as fecha,
     count (case when d.tipo_trans<>'' then 1 else null end) AS cant_trans,
     sum (case when d.tipo_trans='I' then d.monto_trans else -d.monto_trans end) as Monto
from tb_hist_con_f d left join tb_compras_ventas d1 on d.ref_cv=d1.codigo
where d.fechahora between :f_ini and :f_fin
  and (0=:cod_usuario or d.ref_personal_registro=:cod_usuario)
  and ((0=:cod_cliente or d1.ref_cliente=:cod_cliente) and (0=:cod_proveedor or d1.ref_proveedor=:cod_proveedor))
group by fecha

order by 2, 1 Desc

Me funciona bien, pero como verán en campo NOMBRE es un valor constante para cada sub consulta, el detalle es:

Ahora me sale así: (sin los salto de linea)
Código PHP:
[b]NOMBRE            FECHA        CANT_TRANS        MONTO[/b]

Cuotas            05.12.2016            1             2.000

Ventas al contado    06.12.2016            2            12.000
Cuotas            06.12.2016            2             5.000

Cuotas            07.12.2016            2            22.000

Ventas al contado    10.12.2016            1            22.000
Cuotas            10.12.2016            1             3.100

Cuotas            13.12.2016            2            96.000

Cuotas            14.12.2016            2            52.500

Facturas             15.12.2016            1             3.740

Facturas             20.12.2016            3             6.240 
Y Quisiera que quede así: (sin los saltos de linea)

Código PHP:
[b]NOMBRE            FECHA        CANT_TRANS        MONTO[/b]

Ventas al contado    05.12.2016            0             0.000
Facturas             05.12.2016            0             0.000
Cuotas            05.12.2016            1             2.000

Ventas al contado    06.12.2016            2            12.000
Facturas             06.12.2016            0             0.000
Cuotas            06.12.2016            2             5.000

Ventas al contado    07.12.2016            0             0.000
Facturas             07.12.2016            0             0.000
Cuotas            07.12.2016            2            22.000

Ventas al contado    10.12.2016            1            22.000
Facturas             10.12.2016            0             0.000
Cuotas            10.12.2016            1             3.100

Ventas al contado    13.12.2016            0             0.000
Facturas             13.12.2016            0             0.000
Cuotas            13.12.2016            2            96.000

Ventas al contado    14.12.2016            0             0.000
Facturas             14.12.2016            0             0.000
Cuotas            14.12.2016            2            52.500

Ventas al contado    15.12.2016            0             0.000
Facturas             15.12.2016            1             3.740
Cuotas            15.12.2016            0             0.000

Ventas al contado    20.12.2016            0             0.000
Facturas             20.12.2016            3             6.240
Cuotas            20.12.2016            0             0.000 
Como ven quisiera que cuando la consulta de vacio me retorne ceros en CANT_TRANS Y MONTO y en NOMBRE y FECHA los valores mostrados.

Alguna idea que me pudieran dar, estaría muy agradecido pues me facilitaría mucho mi reporte de caja.

PERDÓN EL DESORDEN PERO NO ENCONTRE FORMATO TABLA
__________________
Saludos desde Sucre - Bolivia
"Si te lo puedes imaginar lo
puedes resolver" Pyriel

Última edición por ronalg fecha: 23-12-2016 a las 23:53:36. Razón: faltó explicación del problema
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Usar TServerSocket y TClientSocket para enviar "streams" más o menos "grandes" dec Internet 9 04-08-2015 16:11:50
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
if "0" then null, como? ELINK SQL 8 14-07-2006 18:06:52
Cómo insertar "NULL" en un parametro de INSERT en SQL Joselito SQL 4 23-10-2005 00:17:35
Interbase 6.5 Campo LLave Sin la restriccion "NOT NULL" se puede?? norberto_larios Conexión con bases de datos 3 07-09-2004 23:34:12


La franja horaria es GMT +2. Ahora son las 18:55:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi