Sei sulla pagina 1di 4

create table contribuyente (id_contrib int primary key, nombre varchar(50) not null, apellido varchar (50) not

null)

create table construccion (id_const int primary key, direccion varchar(50) not null, zona varchar(50) not null, id_contrib int not null, constraint fk_contribuyente foreign key (id_contrib) references contribuyente(id _contrib) )

create table piso (id_piso int not null, id_const int not null, n_piso int not null, monto_piso int not null, constraint pk_piso primary key(id_piso), constraint fk_construccion foreign key (id_const) references const(id_const) )

CREATE TABLE pago ( id_pago int(11) primary key, fecha datetime NOT NULL, monto int(11) NOT NULL, observacion varchar(100) NULL, id_contrib int(11) NOT NULL, tipo char(1) NOT NULL, saldo int(11) NULL, n_acta varchar(20) NULL, n_recibo varchar(20) NULL, cuota int null, constraint fk_contribuyente foreign key (id_contrib) references contribuyente(id _contrib) ) create table cuota_acta ( id_cuota int primary key, monto int , fecha datetime, id_pago int , constraint fk_pago foreign key (id_pago) references pago(id_pago) )

saber monto contribuyente 1:

SELECT c.id_contrib, c.nombre, c.apellido, sum( p.monto_piso ) FROM contribuyente c INNER JOIN construccion ct ON c.id_contrib = ct.id_contrib INNER JOIN piso p ON ct.id_const = p.id_const WHERE c.id_contrib =1 GROUP BY c.id_contrib saber montos por piso por contribuyente SELECT c.id_contrib, c.nombre, p.n_piso, c.apellido, p.monto_piso FROM contribuyente c INNER JOIN construccion ct ON c.id_contrib = ct.id_contrib INNER JOIN piso p ON ct.id_const = p.id_const saber monto total de contruccion por contribuyente SELECT c.id_contrib, c.nombre,c.apellido, sum(p.monto_piso) FROM contribuyente c INNER JOIN construccion ct ON c.id_contrib = ct.id_contrib INNER JOIN piso p ON ct.id_const = p.id_const group by c.id_contrib

select * from contribuyente c inner join pago p on c.id_contrib=p.id_contrib inner join cuota_acta ca on p.id_pago=ca.id_pago saber cuanto va cancelando contribuyente por acta: select c.id_contrib,c.nombre,c.apellido,p.monto,sum(ca.monto) as cancelado,(p.m onto- sum(ca.monto)) as saldo from contribuyente c inner join pago p on c.id_contrib=p.id_contrib inner join cuota_acta ca on p.id_pago=ca.id_pago group by c.id_Contrib

saber los montos y cancelaciones contribuyentes por acta y recibo select c.id_contrib,c.nombre,c.apellido,p.tipo as tipo_pago,p.monto,sum(ca.mont o) as cancelado,(p.monto- sum(ca.monto)) as saldo from contribuyente c left join pago p on c.id_contrib=p.id_contrib left join cuota_acta ca on p.id_pago=ca.id_pago group by c.id_Contrib

SELECT c.id_contrib, c.nombre, c.apellido, sum( p.monto_piso ) - sum( ca.monto ) AS saldo FROM cuota_acta ca INNER JOIN pago pa ON pa.id_pago = ca.id_pago INNER JOIN contribuyente c ON pa.id_contrib = c.id_contrib INNER JOIN construccion ct ON c.id_contrib = ct.id_contrib INNER JOIN piso p ON ct.id_const = p.id_const

GROUP BY c.id_contrib

CREATE TABLE pago( id_pago int PRIMARY KEY , fecha datetime NOT NULL , monto int NOT NULL , observacion varchar( 100 ) NULL , id_const int NOT NULL , tipo char( 1 ) NOT NULL , saldo int NULL , n_acta varchar( 20 ) NULL , n_recibo varchar( 20 ) NULL , cuota int NULL , CONSTRAINT fk_const FOREIGN KEY ( id_const ) REFERENCES constrcuccion( id_const ) )

SELECT c.id_contrib, c.nombre, c.apellido, sum( p.monto_piso ) FROM cuota_acta ca INNER JOIN pago pa ON pa.id_pago = ca.id_pago INNER JOIN construccion ct ON pa.id_const = ct.id_const INNER JOIN contribuyente c ON ct.id_contrib = c.id_contrib INNER JOIN piso p ON ct.id_const = p.id_const GROUP BY c.id_contrib

SELECT c.id_contrib, c.nombre, c.apellido, p.monto, sum( ca.monto ) AS cancelado , ( p.monto - sum( ca.monto ) ) AS saldo FROM contribuyente c INNER JOIN construccion ct ON c.id_contrib = ct.id_contrib INNER JOIN pago p ON ct.id_const = p.id_const INNER JOIN cuota_acta ca ON p.id_pago = ca.id_pago GROUP BY c.id_Contrib

SELECT c.id_contrib, c.nombre, c.apellido, p.monto, sum( ca.monto ) AS cancelado , ( p.monto - sum( ca.monto ) ) AS saldo

FROM contribuyente c INNER JOIN construccion ct ON c.id_contrib = ct.id_contrib inner join piso pi on ct.id_const=pi.id_const INNER JOIN pago p ON p.id_piso = pi.id_piso INNER JOIN cuota_acta ca ON p.id_pago = ca.id_pago GROUP BY c.id_Contrib

SELECT c.id_contrib, c.nombre, c.apellido, sum(pi.monto_piso), sum( ca.monto ) A S cancelado, ( pi.monto_piso - sum( ca.monto ) ) AS saldo FROM contribuyente c left JOIN construccion ct ON c.id_contrib = ct.id_contrib left join piso pi on ct.id_const=pi.id_const left JOIN pago p ON p.id_piso = pi.id_piso left JOIN cuota_acta ca ON p.id_pago = ca.id_pago GROUP BY c.id_Contrib

Potrebbero piacerti anche