假设有一个书店,书店的管理者要对书店的经营状况进行管理,需要建立一个数据库,其中包括两个表: 存书(书号,书名,出版社,版次,出版日期,作者,书价,进价,数量) 销售(日期,书号,数量,金额) 请用SQL实现书店管理者的下列要求。 (1)建立存书表和销售表; (2)掌握书的库存情况,列出当前库存的所有书名、数量、余额(余额=进价×数量,即库存占用的资金); (3)统计总销售额; (4)列出每天的销售报表,包括书名、数量和合计金额(每一种书的销售总额); (5)分析畅销书,即列出本期(从当前日期起,向前30天)销售数量大于100的书名、数量。
时间: 2024-03-10 21:48:26 浏览: 216
建立存书表的SQL语句:
```
CREATE TABLE 存书 (
书号 INT PRIMARY KEY,
书名 VARCHAR(50),
出版社 VARCHAR(50),
版次 VARCHAR(20),
出版日期 DATE,
作者 VARCHAR(50),
书价 DECIMAL(10, 2),
进价 DECIMAL(10, 2),
数量 INT
);
```
建立销售表的SQL语句:
```
CREATE TABLE 销售 (
日期 DATE,
书号 INT,
数量 INT,
金额 DECIMAL(10, 2),
FOREIGN KEY (书号) REFERENCES 存书(书号)
);
```
列出当前库存的所有书名、数量、余额的SQL语句:
```
SELECT 书名, 数量, 进价*数量 AS 余额 FROM 存书;
```
统计总销售额的SQL语句:
```
SELECT SUM(金额) AS 总销售额 FROM 销售;
```
列出每天的销售报表,包括书名、数量和合计金额的SQL语句:
```
SELECT 存书.书名, 销售.数量, 销售.金额 FROM 存书, 销售 WHERE 存书.书号 = 销售.书号 ORDER BY 销售.日期;
```
分析畅销书,即列出本期销售数量大于100的书名、数量的SQL语句:
```
SELECT 存书.书名, SUM(销售.数量) AS 销售数量 FROM 存书, 销售 WHERE 存书.书号 = 销售.书号 AND 销售.日期 >= DATEADD(day, -30, GETDATE()) GROUP BY 存书.书名 HAVING SUM(销售.数量) > 100;
```
阅读全文