La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/SQL/900580-Formar-un-reporte-con-varios-querys.html

Formar un reporte con varios querys..

Formar un reporte con varios querys..

Publicado por Ivonne (2 intervenciones) el 13/11/2007 23:08:35
Hola amigos, gusto en saludarlos...tengo varios querys sueltos que me gustaria pasarlo en un solo reporte..me dicen que tengo que crear varios registros en un temporal con los mismos nombre de campos y los mismos números de campos y cada registro sería un renglón del reporte general y al final imprimo el temporal...La verdad ni idea de como hacerlo, tengo elaborado los querys por separado
que son:

select ' CHEQUE DEVUELTO' as Concepto,count(*) as Acumulado,sum(dbo.cxccmv.saldo)as importe,'0' as Porcentaje from dbo.cxccmv where cve_tra like '%chdv%'

select 'CHEQUE POSFECHADO' AS Concepto,count(*) as Acumulado,sum(dbo.cxccmv.saldo)as importe,'0' as Porcentaje from dbo.cxccmv inner join dbo.cxccli on dbo.cxccmv.cte=dbo.cxccli.cve where cve_tra like '%chpo%' and dbo.cxccmv.saldo>0

select 'PEDIDOS POR SURTIR' AS Concepto,count(*) as Acumulado,sum(dbo.pedped.cos_tot) as Importe,'0' as Porcentaje from pedped where status='px'

select 'PEDIDOS CANCELADOS' AS Concepto,count(*) as Acumulado,sum(dbo.pedped.cos_tot) as Importe,'0' as Porcentaje from pedped where status='pc'

select 'PEDIDOS SURTIDOS' AS Concepto, count(*) as Acumulado,sum(dbo.pedped.cos_tot) as Importe,'0' as Porcentaje from pedped where status='ps'

select 'CREDITOS NO AUTORIZADOS' AS Concepto, count(*) as Acumulado,sum(dbo.pedped.cos_tot) as Importe,'0' as Porcentaje from pedped where status='pr'

select 'CREDITOS AUTORIZADOS' AS Concepto, count(*) as Acumulado,sum(dbo.pedped.cos_tot) as Importe,'0' as Porcentaje from pedped where status like '%PX%' AND FEC_CRE=' ' AND USR_CRE=''

--Saldos Normales.
SELECT 'SALDO NORMALES' AS Conepto,COUNT(*) AS Acumulado,sum(saldo) as Importe,cast(round( (cast(count(*) as float)*100)/(select count(*) from cxccmv where cve_tra like '%FACT%'),0) as integer)as Porcentaje
FROM cxccmv
WHERE cast(fec_ven as datetime(10))>='01/08/2007' and cve_tra like '%FACT%'

--Saldos Vencidos.
SELECT 'SALDO VENCIDOS' AS Conepto,COUNT(*) AS Acumulado, sum(saldo) as Importe,cast( round( (cast(count(*) as float)*100)/(select count(*) from cxccmv where cve_tra like '%FACT%'),0) as integer)as Porcentaje
FROM cxccmv
WHERE cast(fec_ven as datetime(10))<'01/08/2007' and cve_tra like '%FACT%'

---SALDOS TOTALES
SELECT 'SALDO TOTALES' AS Conepto,COUNT(*) AS Acumulado,sum(saldo) as Importe,cast(round( (cast(count(*) as float)*100)/(select count(*) from cxccmv where cve_tra like '%FACT%'),0) as integer)as Porcentaje
FROM cxccmv
WHERE cve_tra like '%FACT%'


y cada uno muestra algo asi

concepto acumulado importe porcentaje
cheque devueltos 2 125000 0

cheques posfechados 5 25000 0

saldos vencidos 12 123000 52
.
.
.
etc.....pero cada uno en reportes separados y quisiera que en un solo reporte aparezca...Saludos...por favor si alguien sabe como le puedo hacer le agradeceria mucho la ayuda...Saludos.
sin imagen de perfil

RE:Formar un reporte con varios querys..

Publicado por Liliana (21 intervenciones) el 15/11/2007 18:11:06
Ivonne,
usá el operador UNION:

SELECT col1, col2, col3....
FROM tabla
WHERE condiciones

UNION

SELECT col1, col2, col3....
FROM Otratabla
WHERE condiciones

La precaución que debés tener es que cada SELECT debe devolver la misma cantidad de columnas, con el mismo (o similar) tipo de datos.

Liliana.