0

ジョブタイプが「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でグループ化する必要があると思いますが、残りのクエリは必要ありません。これは可能ですか、それとも結合を使用する必要がありますか? いくつかの結合を試みましたが、何も機能しませんでした。どんな助けでも感謝します。

4

2 に答える 2

0

このSQLを試してください

select b.*, (select count(*) from pos where job_id=o.job_id) 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';
于 2013-05-30T10:56:12.770 に答える