当前位置:首页 » 编程语言 » 计算每种图书的积压货款sql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

计算每种图书的积压货款sql

发布时间: 2022-05-18 14:48:22

sql题目,关于图书信息管理系统

在此图书馆管理系统中,使用到了一个重要的连接,即与数据库Accesss相连。数据库中存有图书馆中所信息,包括读者信息、管理员资料、借阅与退还记录。所有与管理有关的数据皆在其中,是保证系统能够正常实现各种功能的一架桥。

1、 数据库需求分析

⒈Admi表,即管理员表,记录了用户名和密码。

⒉Admirz表,即管理日志表,记录了书号、书名、图书证号、借/还、操作日期、已付款额。

⒊book表,即图书表,记录了书号、书名、作者、出版社、入库时间、是否借出、价格。

⒋borrowbook表,即借阅表,记录了图书证号、书号、借阅日期、应还日期。

⒌person表,即读者表,记录了图书证号、姓名、性别、系别、班级。

2 、数据库表的设计

⒈Admi表

表中记录了可以使管理员进入该系统的用户名及密码,如表1所示。

表5借阅表

② SQL Server 数据库课程设计某书店图书进货、销售管理系统(Myeclipse和mysql)

这个是数据库设计,不是前端业务逻辑实现,只需要完成数据表的设计以及存储过程、视图、约束、用户自定义函数等的设计就可以了,不用考虑myeclipse前端的。

③ 求一条SQL语句,比较棘手,高手进来看看吧,小弟感激不尽。。

flyingFish211 楼上的这位应该是大牛级别的人物,用眼睛就短时间内直接回答了你的问题。
有的地方我是参考它的
我只能做到这个程度:不知道以下答案是否能满足你的要求

create table tb_a (
isn int auto_increment primary key, -- 图书内码
bookname varchar(20), -- 书名
price double, -- 定价
bookno int -- 书号
);
create table tb_b(
stocknum int auto_increment primary key, -- 进货单号
time Date, -- 进货时间
stockname varchar(20), -- 进货商品名称
sumprice double -- 进货实洋
);
create table tb_c(
note int auto_increment primary key, -- 进货记录
rebate double, -- 进货折扣
amount int, -- 进货数量
stocknum int, -- 进货单号
isn int -- 图书内码
);
create table tb_d(
depotloc int auto_increment primary key, -- 库位
isn int, -- 图书内码
depotnum int, -- 库存
depotno int -- 仓号
);

-- 添加外键约束
alter table tb_c
add constraint tb_c_FK foreign key (isn) references tb_a(isn);
alter table tb_d
add constraint tb_d_FK foreign key (isn) references tb_a(isn);

alter table tb_c
add constraint tb_c_stocknum_FK foreign key (stocknum) references tb_b(stocknum);

-- 插入tb_a 表的数据

insert into tb_a(isn,bookname,price,bookno) values(1001,'文本1','10.00',1234);
insert into tb_a(isn,bookname,price,bookno) values(1002,'文本2','12.00',1235);
insert into tb_a(isn,bookname,price,bookno) values(1003,'文本3','12.80',1236);

-- 插入tb_b 表的数据

insert into tb_b(stocknum,time,stockname,sumprice) values(2001,'2012-02-16','北京新华书店',2540.00);
insert into tb_b(stocknum,time,stockname,sumprice) values(2002,'2012-02-15','上海新华书店',540.00);
insert into tb_b(stocknum,time,stockname,sumprice) values(2003,'2012-02-14','郑州新华书店',1540.00);

-- 插入tb_c 表的数据
insert into tb_c(note,rebate,amount,stocknum,isn) values(3001,0.74,60,2001,1001);
insert into tb_c(note,rebate,amount,stocknum,isn) values(3002,0.74,100,2001,1001);
insert into tb_c(note,rebate,amount,stocknum,isn) values(3003,0.61,120,2001,1002);
insert into tb_c(note,rebate,amount,stocknum,isn) values(3004,0.62,120,2001,1003);
insert into tb_c(note,rebate,amount,stocknum,isn) values(3005,0.65,50,2002,1002);
insert into tb_c(note,rebate,amount,stocknum,isn) values(3006,0.85,40,2002,1001);

-- 插入tb_d 表的数据
insert into tb_d(depotloc,isn,depotnum,depotno) values(24,1001,50,1);
insert into tb_d(depotloc,isn,depotnum,depotno) values(26,1002,60,1);
insert into tb_d(depotloc,isn,depotnum,depotno) values(27,1001,30,2);
insert into tb_d(depotloc,isn,depotnum,depotno) values(54,1002,80,2);

__________________________

表的基本情况就是,表A.内码 = 表C.内码 = 表D.内码;表C.进货单号 = 表B.进货单号

1,求一条SQL语句,统计2001单号中每个图书进货的总数,应返回
图书内码,书名,定价,进货数量,折扣,库存,库位,进货记录,进货单号

select tb_c.stocknum,tb_a.isn,tb_a.bookname,tb_a.price,tb_c.amount,tb_c.rebate,tb_d.depotnum,tb_d.depotloc,tb_c.note
from tb_c left join tb_a on (tb_c.isn=tb_a.isn)
left join tb_d on (tb_c.isn=tb_d.isn)
where tb_c.stocknum=2001;

select tb_c.stocknum '单号',tb_a.isn '图书内码',tb_a.bookname '书名',tb_a.price '定价',tb_c.amount '数量',tb_c.rebate '折扣',
tb_d.depotnum '库存',tb_d.depotloc '库位',tb_c.note '库存记录'
from tb_c left join tb_a on (tb_c.isn=tb_a.isn)
left join tb_d on (tb_c.isn=tb_d.isn)
where tb_c.stocknum=2001;

____________________________________

2. 求一条SQL语句,统计1仓库存大于零的书目,并且带上最低折扣的供应商,应返回结果:
图书内码,书名,定价,库存,库位,折扣,供应商

___________________

select tb_d.depotno,tb_a.isn,tb_a.bookname,tb_a.price,
tb_d.depotnum,tb_d.depotloc,
tb_c.rebate,
tb_b.stockname
from tb_d left join tb_a on (tb_a.isn=tb_d.isn)
left join tb_c on (tb_c.isn=tb_d.isn)
left join tb_b on (tb_c.stocknum = tb_b.stocknum )
where tb_d.depotno=1 and tb_d.depotnum>0;

3, 求一条SQL语句,统计1号仓库存大于零的书目,并且带上最后一次进货的供应商,应返回结果:
图书内码,书名,定价,库存,库位,进货日期,供应商

select tb_d.depotno,tb_d.depotnum,tb_d.depotloc,
tb_a.isn,tb_a.bookname,tb_a.price,
tb_b.time,tb_b.stockname
from tb_d left join tb_a on (tb_a.isn=tb_d.isn)
left join tb_b on tb_b.stocknum
where tb_d.depotno=1 and tb_d.depotnum>0;

④ SQL语句 查询统计借阅.dbf,显示每种图书的书号,借阅次数. 求大神赐我答案

现有三张表,分别是:图书.dbf,读者.dbf,借阅.dbf,
查询统计借阅.dbf,显示每种图书的书号,借阅次数。

select 图书书号,借阅次数 from 借阅.dbf

查询图书.dbf,显示所有书名包含“基础”二字的图书信息。

select * from 图书.dbf where 书名 like '%基础%'

按办证日期先后顺序显示读者.dbf中的读者信息。

select * from 读者.dbf order by 办证日期 asc(或者desc)

查询显示被借阅次数最多的前三名图书的书号,书名,借阅次数。

select 书号,书名,借阅次数 from 借阅.dbf where 借阅次数 in (select top 3 借阅次数 from 借阅.dbf order by 借阅次数 desc)

查询图书.dbf显示图书的平均价格。

select avg(sum(图书价格)) from 图书.dbf

查询统计读者.dbf,显示男、女读者各有多少人。

select 性别,count(性别) as 人数 from 读者.dbf group by 性别

查询图书.dbf,显示所有书名包含“程序”二字的图书信息。

select * from 图书.dbf where 书名 like '%程序%'

查询统计图书.dbf,显示出版社名及各个出版社的图书总数。

select 出版社,count(出版社) as 图书总数 from 读者.dbf group by 性别

查询显示至少被借阅了2次的图书的书号及书名

select 书号,书名 from 图书.dbf where 借阅次数>2

很辛苦啊,采纳下吧^_^

⑤ 怎样用SQL语句表示每个月统计并输出2006年每个月份的图书借出的册数

1. 求总藏书量、藏书总金额,总库存册数、最高价、最低价。
select count(图书编号) as 总藏书量,
sum(定价) as 藏书总金额,
sum(实际数量) as 总库存册数,
max(定价) as 最高价,
min(定价) as 最低价
from 图书卡片
go
2. 列出藏书在10本以上的书(书名、作者、出版社、年份)。
select 图书名称,作者姓名,出版社,出版日期
from 图书卡片
group by 图书编号 having(coung(1)>10)
order by 图书名称
go
3. 哪些出版社的藏书种类数超过100种。
select 出版社 as '藏书种类数超过100种的出版社'
from 图书卡片
group by 出版社 having(count(类别)>100)
order by 出版社
go
4. 目前实际已借出多少册书?
select sum(借出数量) as '借出数量'
from 图书卡片
go
5. 年份最久远的书。
select top 1 with ties 图书名称 from 图书卡片
order by 出版日期
go
6. “数据库系统原理教程,王珊编,清华大学出版社,1998年出版”还有几本?
select count(1) from 图书卡片
where concaints(摘要,'"数据库系统原理教程,王珊编,清华大学出版社,1998年出版"')
go
7. 哪一年的图书最多?
select top 1 with ties convert(substring(出版日期,1,4)) as 年份,count(1) as '图书数量'
from 图书卡片
group by 出版日期
order by 图书数量 desc
go
8. 哪本借书证未归还的图书最多?
select top 1 with ties A.读者编号,count(1) as '借书数量'
from 图书卡片 A,借阅 B
where A.图书编号=B.图书编号
group by A.读者编号
order by 借书数量 desc
go
9、平均每本借书证的借书册数。
select avg(借阅数量) as '平均每本借书证的借书册数'
from 借阅
go

10.哪个系的同学平均借书册数最多?
select top 1 with ties A.工作单位,avg(借阅数量) as '平均借阅数量'
from 读者 A,借阅 B
where A.读者编号=B.读者编号
group by A.工作单位
order by 平均借阅数量' desc
go

11. 最近两年都未被借过的书。
select 图书名称
from 图书卡片
where 图书编号 in(select 图书编号 from 借阅 where datediff(year,借阅日期,getdate())>2)
go
12. 列出那些借了图书逾期未归还的借书证号和图书名。
select A.读者编号 as '借书证号',B.图书名称
from 读者 as A inner join 图书卡片 as B on A.图书编号=B.图书编号
where A.应归还日期<getdate() and A.实际归还日期 is null
go
13.今年未借过书的借书证。
select 读者编号
from 读者
where 读者编号 not in(select 读者编号
from 读者
where datediff(year,借阅日期,getdate())=0)
go

14. 今年那种书出借最多?
select top 1 with ties A.类别,count(1) as '借出数量'
from 图书卡片 A,借阅 B
where datediff(year,B.借阅日期,getdate())=0
group by A.类别
order by 借出数量' desc
go

⑥ 利用SQL查询每一个雇员销售图书的数量

select 雇员基本信息表.姓名,sum(销售数量) as 总销售数量 from 雇员基本信息表,图书零售表 where 雇员基本信息表.雇员编号=图书零售表.雇员编号 group by 姓名

select 书名,作者,sum(销售数量) as 销售数量,sum(销售数量)*单价 as 总金额 from 图书零售表,图书基本信息表 where 图书零售表.图书编号=图书基本信息表.图书编号 group by 书名,作者,单价

⑦ 如何用SQL设计书店收费管理系统,要有书信息管理、书费计算、收费单打印、按日或按月盘点等多项功能。

1.图书类别表: 编号, 名称, 父编号, 末级标志(0, 非末级标志,1,末级标志)
001 文学类 0 0
00101 英国文学 001 1
00102 中国文学 001 1
002 计算机类 0 0
00201 数据库 002 1

等等。。。。。。。。。。。。。。
2.图书档案表: 图书编号(条码), 书名, 单价, 作者, 出版单位, 所属类别

1111112 王子复仇记 1000.00 摩羯飞蛾扑火 某某 00101

等等。。。。。。。。
3.库存量视图 : 图书编号 , 库存数量
1111112 123
4.库存期初表: 图书编号 , 库存数量
1111112 100
所谓期初表,就是在用你的这套系统前,要做一下盘点,点清各种图书有多少本,放到这张表中。动态生成的库存量视图,就是 期初数量+进货数量-销售数量 得到的。

5. 采购入库单(主子表)
主表 : 单据号, 采购时间, 供货商, 所如仓库,采购类型。。。。。。。。。
子表: 单据号,图书编号,数量,采购价,。。。。。。。。。。。

6. 销售表(主子表)
主表: 收费单号 ,时间,收费员。。。。。。。
子表; 单据号,图书编号,数量,单价 , 折扣。。。。。。。。。

7. 盘点单 和 入库销售差不多的数据库设计,它的作用主要是 点清实际数量和系统数量的差,做个调整,让他们相等 , 如: 王子复仇记 库存 100本,今天(或本月)卖了 30 本,系统统计库存剩余 70本。 但 有些读书人认为偷书不算偷,顺了 10本。实际库存 60本,这样就有差存在,在系统中要做 一张 盘亏的盘点单调整系统库存量。

当然,要做到该系统实际可用,还有许多细节和表要设计,如果初学的话,设计好该系统不太可能。应安排设计某张表还差不多

⑧ 用SQL查询语句 1,计算每个书店书籍的平均单价 2,计算各个地区书籍销售总量 下面分别是销售表,书店表

1.
select a.书店名, b.avg_unit_price as '平均单价'
from 书店表 a,(
select 书店编号, sum(总计金额)/sum(销售总量) as avg_unit_price
from 销售表
group by 书店编号 ) b
where a.书店编号=b.书店编号

2.
--不同的书店所属的地区不同,所以不同地区就相当于不同的书店

select substring(1,4,a.书店名) as '地区', b.totalsales as '销售总量'
from 书店表 a,(
select 书店编号, sum(销售总量) as totalsales
from 销售表
group by 书店编号 ) b
where a.书店编号=b.书店编号

⑨ SQL 图书管理系统的查询语句

1. 求总藏书量、藏书总金额,总库存册数、最高价、最低价。
select count(图书编号) as 总藏书量,
sum(定价) as 藏书总金额,
sum(实际数量) as 总库存册数,
max(定价) as 最高价,
min(定价) as 最低价
from 图书卡片
go
2. 列出藏书在10本以上的书(书名、作者、出版社、年份)。
select 图书名称,作者姓名,出版社,出版日期
from 图书卡片
group by 图书编号 having(coung(1)>10)
order by 图书名称
go
3. 哪些出版社的藏书种类数超过100种。
select 出版社 as '藏书种类数超过100种的出版社'
from 图书卡片
group by 出版社 having(count(类别)>100)
order by 出版社
go
4. 目前实际已借出多少册书?
select sum(借出数量) as '借出数量'
from 图书卡片
go
5. 年份最久远的书。
select top 1 with ties 图书名称 from 图书卡片
order by 出版日期
go
6. “数据库系统原理教程,王珊编,清华大学出版社,1998年出版”还有几本?
select count(1) from 图书卡片
where concaints(摘要,'"数据库系统原理教程,王珊编,清华大学出版社,1998年出版"')
go
7. 哪一年的图书最多?
select top 1 with ties convert(substring(出版日期,1,4)) as 年份,count(1) as '图书数量'
from 图书卡片
group by 出版日期
order by 图书数量 desc
go
8. 哪本借书证未归还的图书最多?
select top 1 with ties A.读者编号,count(1) as '借书数量'
from 图书卡片 A,借阅 B
where A.图书编号=B.图书编号
group by A.读者编号
order by 借书数量 desc
go
9、平均每本借书证的借书册数。
select avg(借阅数量) as '平均每本借书证的借书册数'
from 借阅
go

10.哪个系的同学平均借书册数最多?
select top 1 with ties A.工作单位,avg(借阅数量) as '平均借阅数量'
from 读者 A,借阅 B
where A.读者编号=B.读者编号
group by A.工作单位
order by 平均借阅数量' desc
go

11. 最近两年都未被借过的书。
select 图书名称
from 图书卡片
where 图书编号 in(select 图书编号 from 借阅 where datediff(year,借阅日期,getdate())>2)
go
12. 列出那些借了图书逾期未归还的借书证号和图书名。
select A.读者编号 as '借书证号',B.图书名称
from 读者 as A inner join 图书卡片 as B on A.图书编号=B.图书编号
where A.应归还日期<getdate() and A.实际归还日期 is null
go
13.今年未借过书的借书证。
select 读者编号
from 读者
where 读者编号 not in(select 读者编号
from 读者
where datediff(year,借阅日期,getdate())=0)
go

14. 今年那种书出借最多?
select top 1 with ties A.类别,count(1) as '借出数量'
from 图书卡片 A,借阅 B
where datediff(year,B.借阅日期,getdate())=0
group by A.类别
order by 借出数量' desc
go