Forums Últimos mensajes - Powered by IBM
 

Pido disculpas, nada de nada

21/09/2007 - 17:41 por David | Informe spam
SQL Server 2000

Muy buenas, estoy KO, será porque es viernes, creo que es muy sencilla la
consulta pero nada de nada

Tabla1
-
id | fecha | concepto | haber

1 01/01/2007 GASTOS 2.000
2 01/01/2007 COMPRAS 3.000

Para un día determinada EXCLUSIVAMENTE el concepto aparece una única vez

Tabla2
-
id | fecha | concepto | debe

4 01/01/2007 GASTOS 100
5 01/01/2007 GASTOS 200

6 01/01/2007 COMPRAS 500
7 01/01/2007 COMPRAS 600
8 01/01/2007 COMPRAS 800

Para un día determinada el concepto puede repetirse o no aparecer

¿Cómo sería la consulta para devolver, por día y concepto la diferencia
entre el haber de Tabla1 y el debe de Tabla2?

Resultado
dia Concento Saldo
01/01/2007 GASTOS 1.700 = (2.000 - 100 - 200)
01/01/2007 COMPRAS 1.100 = (3.000 - 500 - 600 - 800)
 

Leer las respuestas

#1 jcac
21/09/2007 - 18:03 | Informe spam
Espero que esto te pueda ayudar. Pienso que deben de haber otras soluciones
pero esta me vino a la cabeza.

create table #tabla1 (campoid int, campofecha datetime, campoconcepto
varchar(100), campohaber decimal(10,3))
create table #tabla2 (campoid int, campofecha datetime, campoconcepto
varchar(100), campodebe decimal(10,3))
go
insert into #tabla1 values (1, '20070101', 'GASTOS', 2000)
insert into #tabla1 values (2, '20070101', 'COMPRAS', 3000)
go
insert into #tabla2 values (4, '20070101', 'GASTOS', 100)
insert into #tabla2 values (5, '20070101', 'GASTOS', 200)
insert into #tabla2 values (6, '20070101', 'COMPRAS', 500)
insert into #tabla2 values (7, '20070101', 'COMPRAS', 600)
insert into #tabla2 values (8, '20070101', 'COMPRAS', 800)
go
select a.campofecha, a.campoconcepto,
(select sum(campohaber) from #tabla1 where a.campofecha = campofecha and
a.campoconcepto = campoconcepto group by campofecha, campoconcepto) as
campohaber,
(select sum(campodebe) from #tabla2 where a.campofecha = campofecha and
a.campoconcepto = campoconcepto group by campofecha, campoconcepto) as
campodebe,
(select sum(campohaber) from #tabla1 where a.campofecha = campofecha and
a.campoconcepto = campoconcepto group by campofecha, campoconcepto) -
(select sum(campodebe) from #tabla2 where a.campofecha = campofecha and
a.campoconcepto = campoconcepto group by campofecha, campoconcepto) as
camposaldo
from #tabla1 a
go
drop table #tabla1
drop table #tabla2
go

Saludos

"David" escribió en el mensaje
news:%23LyERXG$
SQL Server 2000

Muy buenas, estoy KO, será porque es viernes, creo que es muy sencilla la
consulta pero nada de nada

Tabla1
-
id | fecha | concepto | haber

1 01/01/2007 GASTOS 2.000
2 01/01/2007 COMPRAS 3.000

Para un día determinada EXCLUSIVAMENTE el concepto aparece una única vez

Tabla2
-
id | fecha | concepto | debe

4 01/01/2007 GASTOS 100
5 01/01/2007 GASTOS 200

6 01/01/2007 COMPRAS 500
7 01/01/2007 COMPRAS 600
8 01/01/2007 COMPRAS 800

Para un día determinada el concepto puede repetirse o no aparecer

¿Cómo sería la consulta para devolver, por día y concepto la diferencia
entre el haber de Tabla1 y el debe de Tabla2?

Resultado
dia Concento Saldo
01/01/2007 GASTOS 1.700 = (2.000 - 100 - 200)
01/01/2007 COMPRAS 1.100 = (3.000 - 500 - 600 - 800)



Preguntas similares