Я пытаюсь понять коррелированные подзапросы и не могу разобраться в этом вопросе.Мне нужно перечислить всю информацию о заданиях, в которых есть данные POS для более чем одного поставщика.
Я должен использовать коррелированный подзапрос для job_id.Я не могу использовать группу по или с любым из них.
SELECT *
FROM bookjobs a
WHERE EXISTS
(SELECT DISTINCT vendor_id
FROM pos b
WHERE b.job_id = a.job_id);
job_id cust_id job_date descr jobtype
---------- ---------- ---------- ---------- ----------
002 E05 1990-03-03 BUS REPORT N
004 A01 1990-01-01 PAMPHLETS R
005 A01 1989-11-23 GOVT N
006 D04 1988-07-04 CAMPAIGN H
Я не могу использовать это и для вопроса:
SELECT *
FROM bookjobs a
WHERE EXISTS
(SELECT job_id
FROM pos b
WHERE b.job_id = a.job_id
GROUP BY job_id
HAVING COUNT(job_id) > 1 );
job_id cust_id job_date descr jobtype
---------- ---------- ---------- ---------- ----------
002 E05 1990-03-03 BUS REPORT N
004 A01 1990-01-01 PAMPHLETS R
005 A01 1989-11-23 GOVT N
SCHEMA
CREATE TABLE pos (
po_id CHAR(3) NOT NULL,
job_id CHAR(3) NOT NULL,
po_date DATE,
vendor_id CHAR(3),
PRIMARY KEY (po_id),
FOREIGN KEY (job_id) REFERENCES bookjobs(job_id)
CREATE TABLE bookjobs (
job_id CHAR(3) NOT NULL,
cust_id CHAR(3) NOT NULL,
job_date DATE,
descr CHAR(10),
jobtype CHAR(1),
PRIMARY KEY (job_id),
FOREIGN KEY (cust_id) REFERENCES publishers(cust_id)
Ожидаемые результаты должныбыть:
job_id cust_id job_date descr jobtype
---------- ---------- ---------- ---------- ----------
002 E05 1990-03-03 BUS REPORT N
004 A01 1990-01-01 PAMPHLETS R
005 A01 1989-11-23 GOVT N