Как написать запрос, чтобы получить количество данных с комбинацией кодирования - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть две таблицы с именами [DrugPrescriptionEdition] и [PrescriptionDoseDetail], и теперь я соединяю эти две таблицы, используя приведенный ниже запрос и получая набор результатов.

select * from   DrugPrescription dp where id in(
  SELECT   distinct  dpe.template
  FROM [DrugPrescriptionEdition] dpe
  join PrescriptionDoseDetail pdd on pdd.prescription = dpe.id 
   where doseEnd_endDate is NULL and doseEnd_doseEndType =1
   )

но теперь я хочу, чтобы записи содержали только (1,2) комбинацию столбца «источник данных» и prescription.id должны быть одинаковыми.

Пример: подобные записи {prescriptionID = 4 и там содержат (1,2)}. Я не буду считать, только 1 или 2 содержат записи.

enter image description here

Нужна помощь специалиста, чтобы добавить эти условия в мой запрос и изменить его.

Ожидаемый результат: мне нужно отфильтровать, результат запроса, используя это, также новое условие.

enter image description here

1 Ответ

0 голосов
/ 25 апреля 2018

Позвольте мне предположить, что ваши записи находятся в одной таблице. Вот один из методов:

select t.*
from t
where (t.dataSource = 1 and
       exists (select 1 
               from t t2
               where t2. prescriptionid = t.prescriptionid and
                     t2.dataSource = 2
              )
      ) or
      (t.dataSource = 2 and
       exists (select 1 
               from t t2
               where t2.prescriptionid = t.prescriptionid and
                     t2.dataSource = 2
              )
      );

Неясно, разрешены ли другие источники данных. Если нет, то добавьте:

and
not exists (select 1
            from t t3
            where t3.prescriptionid = t.prescriptionid and
                  t3.dataSource not in (1, 2)
           )
...