2021-08-23练习

use sql_invoicing;
create view sales_by_client as
select 
	i.client_id,
    c.name,
    sum(i.invoice_total) as invoice
from invoices i
join clients c using(client_id)
group by i.client_id,c.name

create view clients_balance as
select 
	c.client_id,
    c.name,
    sum(invoice_total)-sum(payment_total) as balance
from clients c
join invoices i using(client_id)
group by c.client_id,c.name

create or replace view invoices_with_balance as
select
	invoice_id,
    number,
    client_id, 
    invoice_total,
    payment_total,
    invoice_total - payment_total as balance,
    invoice_date,
    due_date,
    payment_date
from invoices
where (invoice_date - payment_total) > 0

delete from invoices_with_balance 
where invoice_id = 1

update invoices_with_balance 
set due_date = date_add(due_date, interval 2 day)
where invoice_id = 2

update invoices_with_balance        
set payment_total = invoice_total
where invoice_id = 2

DELIMITER $$
CREATE PROCEDURE get_clients()
BEGIN
	SELECT * FROM clients;
END$$
DELIMITER ;

DELIMITER $$
create procedure get_invoices_with_balance()
begin
	select
		invoice_id, number, client_id, invoice_total, (invoice_total-payment_total) as balance, 
		payment_total, invoice_date, due_date, payment_date
	from invoices
	where (invoice_total-payment_total) > 0;
end$$

DELIMITER ;
drop procedure if exists get_clients;

delimiter $$
create procedure get_clients()
begin
	select * from clients;
end $$
delimiter ;


delimiter $$
create procedure get_clients_by_state(state char(2))
begin
select *
from clients c
where c.state = state;
end $$
delimiter ;

delimiter $$
create procedure get_invoices_by_client(client_id int)
begin
select *
from invoices i
where i.client_id = client_id;
end $$
delimiter ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值