У меня есть база данных, в которой есть издатели, и каждый месяц они представляют лист времени. Для того, чтобы найти издателей, которые представили отчет в этом месяце я выполнить этот запрос, чтобы показать мне все отчеты издателя, представленные в этом месяце ...Произвести результаты из нескольких SQL-запросов
SELECT c2.FullName AS ContactFullName,
c2.LastName AS ContactLastName,
c2.ContactId AS PublisherGUID,
f2.jajw_groupname AS FSGName,
b2.jajw_FieldServiceGroup AS FieldServiceGroupGUID,
b2.jajw_reportId AS ReportGUID,
b2.jajw_id AS ReportID,
b2.jajw_ReportMonthId AS ReportMonthGUID,
b2.jajw_ReportYearId AS ReportYearGUID,
r2.jajw_name AS ReportMonthName,
r2.jajw_CalendarDate AS ReportMonthCalDate,
y2.jajw_name AS ReportYearName
FROM ContactBase AS c2
LEFT JOIN jajw_reportBase AS b2 ON c2.ContactId = b2.jajw_PublisherId
LEFT JOIN jajw_reportyearBase AS y2 ON b2.jajw_ReportYearId = y2.jajw_reportyearId
LEFT JOIN jajw_reportmonthBase AS r2 ON b2.jajw_ReportMonthId = r2.jajw_reportmonthId
LEFT JOIN jajw_fieldservicegroupBase AS f2 ON b2.jajw_FieldServiceGroup = f2.jajw_fieldservicegroupId
WHERE c2.StateCode = '0'
AND b2.jajw_ReportYearId = 'A507DFBF-B9CE-E611-A953-002248013EC3'
AND c2.jajw_CongregationAssignment != 640840001
AND c2.jajw_CongregationAssignment != 640840005
AND c2.jajw_CongregationAssignment != 640840006
AND c2.jajw_CongregationAssignment != 640840007
ORDER BY ContactLastName
Следующий шаг, чтобы получить подмножество издателей, которые не представили отчет, так что следующий запрос извлекает все издатели, а затем говорит мне, какие из них находятся не в приведенном выше запросе:
WITH
ALLPUBLISHERSUNFILTERED AS
(
SELECT c2.FullName AS ContactFullName,
c2.LastName AS ContactLastName,
c2.ContactId AS PublisherGUID
FROM ContactBase AS c2
WHERE c2.StateCode = '0'
AND c2.jajw_CongregationAssignment != 640840001
AND c2.jajw_CongregationAssignment != 640840005
AND c2.jajw_CongregationAssignment != 640840006
AND c2.jajw_CongregationAssignment != 640840007
),
REPORTERS AS
(
SELECT c2.FullName AS ContactFullName,
c2.LastName AS ContactLastName,
c2.ContactId AS PublisherGUID,
f2.jajw_groupname AS FSGName,
b2.jajw_FieldServiceGroup AS FieldServiceGroupGUID,
b2.jajw_reportId AS ReportGUID,
b2.jajw_id AS ReportID,
b2.jajw_ReportMonthId AS ReportMonthGUID,
b2.jajw_ReportYearId AS ReportYearGUID,
r2.jajw_name AS ReportMonthName,
r2.jajw_CalendarDate AS ReportMonthCalDate,
y2.jajw_name AS ReportYearName
FROM ContactBase AS c2
LEFT JOIN jajw_reportBase AS b2 ON c2.ContactId = b2.jajw_PublisherId
LEFT JOIN jajw_reportyearBase AS y2 ON b2.jajw_ReportYearId = y2.jajw_reportyearId
LEFT JOIN jajw_reportmonthBase AS r2 ON b2.jajw_ReportMonthId = r2.jajw_reportmonthId
LEFT JOIN jajw_fieldservicegroupBase AS f2 ON b2.jajw_FieldServiceGroup = f2.jajw_fieldservicegroupId
WHERE c2.StateCode = '0'
AND b2.jajw_ReportYearId = 'A507DFBF-B9CE-E611-A953-002248013EC3'
AND c2.jajw_CongregationAssignment != 640840001
AND c2.jajw_CongregationAssignment != 640840005
AND c2.jajw_CongregationAssignment != 640840006
AND c2.jajw_CongregationAssignment != 640840007
)
SELECT a.ContactFullName,
a.ContactLastName,
a.PublisherGUID
FROM ALLPUBLISHERSUNFILTERED a
WHERE NOT EXISTS (SELECT *
FROM REPORTERS rp
WHERE a.PublisherGUID = rp.PublisherGUID)
Последним шагом является кусок я борюсь с. Мне нужно объединить два набора результатов вместе, чтобы получить список с комбинированными результатами.
* HELP * не является полезным описание проблемы или вопрос!. Вы предпринимали какие-либо усилия, чтобы сделать это самостоятельно до публикации? Если да, то какая конкретная проблема вы столкнулись с тем, что мы можем помочь решить? У вас есть ** конкретная проблема **, а не * пожалуйста, напишите этот SQL для меня * сообщение? (И TSQL - это особый термин SQL-Server, который не может включать MySQL. Важно сопоставлять ваши теги с тем, что вы на самом деле используете, а не просто добавлять в случайном порядке те, которые похожи на те, которые похожи. Метки имеют актуальность здесь и диалекты SQL очень разные по функциональности и синтаксису.) –
'WITH()' не поддерживается в MySQL. – Parfait
И просто соедините два с полем индикатора с выдающимися результатами SELECT. – Parfait