在SPJ数据库中,请为三建工程项目建立一个供应情况的视图,包括供应商代码 (SNO)、零件代码 (PNO)、 供应数量 (QTY)。 针对该视图 VSP 完成下列查询: (1) 找出三建工程项目使用的各种零件代码及其数量; (2) 找出供应商 S1的供应情况。
时间: 2023-06-14 10:04:24 浏览: 584
创建视图 VSP:
```
CREATE VIEW VSP AS
SELECT SNO, PNO, QTY
FROM SPJ
WHERE JNO = 'J3';
```
查询1:
```
SELECT PNO, SUM(QTY) AS Total_QTY
FROM VSP
GROUP BY PNO;
```
查询2:
```
SELECT PNO, QTY
FROM VSP
WHERE SNO = 'S1';
```
相关问题
sql在spj表中建立一个反映供应商_零件_工程的视图
假设供应商表为 suppliers,零件表为 parts,工程表为 projects,它们之间的关系为多对多关系,即一个供应商可以提供多种零件,一个零件可以由多个供应商提供,一个工程需要多个零件,一个零件可以用于多个工程。
在这种情况下,可以通过以下 SQL 语句创建一个反映供应商_零件_工程的视图:
```
CREATE VIEW spj_view AS
SELECT s.sname, p.pname, j.jname
FROM suppliers s, parts p, projects j, spj
WHERE s.sid = spj.sid AND p.pid = spj.pid AND j.jid = spj.jid;
```
该视图将返回一个表格,其中每一行表示一个供应商、一个零件和一个工程的组合。每个供应商、零件和工程都有一个名称,可以通过 sname、pname 和 jname 列进行访问。
请注意,此视图基于 spj 表,该表是一个连接表,其中包含供应商、零件和工程的 ID,以及它们之间的关系。因此,如果您想要使用此视图,您需要先创建 spj 表,并将其填充到正确的值。
从视图V-SPJ中查询供应所有工程零件总数超过1000的供应商代码SNO。 --(3)更新视图
抱歉,对不起,我之前的回答有误,正确的回答应该是:
对于第三个问题,我们需要对V_SPJ这个视图进行查询,查询供应所有工程零件总数超过1000的供应商代码SNO。具体的SQL查询语句如下:
```sql
SELECT SNO
FROM V_SPJ
GROUP BY SNO
HAVING SUM(QTY) > 1000;
```
这个查询语句会对V_SPJ视图中的数据进行分组,按照SNO进行分组,然后计算每个供应商提供的零件总数,最后只返回零件总数超过1000的供应商代码SNO。