Имена полей не переносятся в кросс-таблицу - PullRequest
0 голосов
/ 10 мая 2018

У меня есть цепочка запросов - эти данные переходят из таблицы в запрос на выборку, затем в запрос на объединение, затем в другой запрос на выборку, а затем в кросс-таблицу. Каждый запрос работает на каждом шаге, пока я не попаду в кросс-таблицу. В этот момент я получаю сообщение об ошибке, что поле из исходной таблицы является обязательным, но недоступным.

Вот цепочка запросов:

Первый запрос на выборку, называемый HSICInfantsSummary

 SELECT 
      Dates.[Report type], Dates.Start, Dates.End, 
      HSICInfantsReport.CHILD_CONTACT_ID AS ID, 
      .....
   FROM ((HSICInfantsReport 
       INNER JOIN HSInterconceptionReport ON HSICInfantsReport.CHILD_CONTACT_ID = HSInterconceptionReport.CLIENTUNIQUEIDENTIFICATION)
       INNER JOIN HSDemographicsReport ON HSICInfantsReport.CHILD_CONTACT_ID = HSDemographicsReport.CONTACT_ID)
       INNER JOIN (Dates INNER JOIN [Active client list] ON Dates.[Report type] = [Active client list].[Report type]) ON HSICInfantsReport.CHILD_CONTACT_ID = [Active client list].ClientID;

Это входит в запрос Union под названием Сведения о страховании :

select "Client" as type, CLIENTUNIQUEIDENTIFICATION as ID, Admin_Date, Insurance from HSInterconceptionReport 
union all select "Client", CONTACT_ID, admin_date, insurance from HSPPScreeningReport 
union all select "Client", CONTACT_ID, admin_date, insurance from HSPreconceptionReport 
union all select "Client", CLIENTUNIQUEIDENTIFICATION, AdminDate, HealthInsuranceTypesIDs from HSPrenatalScreeningReport
union all select "Infant", format(ID) & " - " & format(DOB) & " - " & birthorder, Admin_date, BabyInsurance  from HSICInfantsSummary 
UNION ALL select "Infant", format(ID) & " - " & format(DOB & " - " & birthorder), Admin_Date, BBYInsurance from HSPPInfantsSummary;

Это входит в другой запрос на выборку, который называется Сводка по страхованию - клиент :

SELECT  
  [All participants summary].[report type],
  [Insurance detail].type, 
  [Insurance detail].ID, 
  .....
FROM [Insurance detail] 
  INNER JOIN [All participants summary] ON [Insurance detail].ID = [All participants summary].ID
GROUP BY  
  [All participants summary].[report type],
  [Insurance detail].type, 
  [Insurance detail].ID, 
  ....
HAVING ((([Insurance detail].type)="Client") AND (([Insurance detail].Admin_Date)=(select max(admin_date) from [insurance detail] T where T.id=[insurance detail].id)))
ORDER BY [Insurance detail].ID, [All participants summary].EnrolledDate;

Этот запрос работает нормально и дает ожидаемые результаты. Затем я хочу сделать кросс-таблицу одного столбца данных:

TRANSFORM Count([Insurance summary - client].ID) AS CountOfID  
SELECT [Insurance summary - client].[report type]  
FROM [Insurance summary - client]  
GROUP BY [Insurance summary - client].[report type]  
PIVOT [Insurance summary - client].Insured;

И вот где оно ломается. Этот запрос должен знать поле «ID» из страхового сводного клиента, но он, похоже, хочет вернуться к таблице, которая является исходным источником для идентификатора, и не находит то, что ему нужно. Сообщение об ошибке:

enter image description here

Можете ли вы сказать мне, почему это происходит, и, что более важно, как обойти это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...