【发布时间】:2018-05-24 08:56:44
【问题描述】:
创建一个名为 nc_num_pos 的视图,该视图显示所有 nc_jobs 信息以及每行 nc_jobs 的 pos 总数。
请记住在GROUP BY 子句中指定SELECT 中但不在聚合函数中的所有列。
测试:
SELECT *
FROM nc_num_pos;
期待:
job_id cust_id job_date descr jobtype num_pos
---------- ---------- ---------- ---------- ---------- ----------
002 E05 1990-03-03 BUS REPORT N 2
得到:
***Runtime error***
Program does not use the nc_jobs view or is badly laid out.
来自使用:
CREATE VIEW nc_num_jobs AS
SELECT b.job_id, b.cust_id, b.job_date, b.descr, b.jobtype, COUNT(po.job_id) as num_pos
FROM Bookjobs b, Publishers p
WHERE b.cust_id = b.cust_id
GROUP BY b.job_id
HAVING p.creditcode = 'C'
AND b.jobtype = 'N';
其中,架构是:
似乎无法得到预期的结果。使用了未知的 DBMS。表现得像 PostgreSQL 而不是 mysql。
【问题讨论】:
-
首先:标记你正在使用的特定sql语言。
-
使用了未知的 DBMS。表现得像 PostgreSQL 而不是 mysql。
-
2.请尝试更具体。 “我似乎做错了。”对我们没有任何意义。 3. 这里可以问你的作业问题,但应该是针对具体问题的重点问题,我们不会为你写代码,也不会为你做作业。 4. 您忽略了赋值部分“记住在 GROUP BY 子句中指定 SELECT 中但不在聚合函数中的所有列”。这就是您无法创建视图的原因。
-
一次迈出一步。从 JOIN 开始。添加在哪里。添加分组依据。当结果正常时,创建视图。
-
您到底怎么不知道您使用的是哪个数据库?这是一种可怕的生活方式:(
标签: sql create-view