我正在尝试列出作业类型“N”的图书作业信息,并让出版商的信用代码为“C”。然后,为先前查询输出的每一行添加 po 的总数(从表 pos 购买订单)。您可以使用 group by 仅应用于该计数而不应用于其余查询吗?我必须使用加入吗?到目前为止,我的尝试都没有成功。这些是我正在使用的表:
bookjobs:
+--------+---------+----------+
| job_id | cust_id | jobtype |
+--------+---------+----------+
publishers:
+---------+------------+------------+
| cust_id | name | creditcode |
+---------+------------+------------+
pos:
+--------+-------+------------+-----------+
| job_id | po_id | po_date | vendor_id |
+--------+-------+------------+-----------+
这是我想出的,虽然它是错误的(计数未分组到 job_id):
select b.*, (select count(*) from pos o) as count
from bookjobs b, publishers p, pos o
where b.cust_id=p.cust_id
and b.job_id=o.job_id
and b.jobtype='N'
and p.creditcode='C';
我相信我需要将计数按 job_id 分组,而不是查询的其余部分。这是可能的还是我需要使用连接?我尝试了一些连接,但无法正常工作。任何帮助表示赞赏。