Невозможно выполнить объединение двух таблиц на основе JOINS - PullRequest
1 голос
/ 17 октября 2019

Пожалуйста, обратитесь к https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=15bd35473ac0c18b2b3a21f3decd1a77

Здесь вы найдете две таблицы - Margin и BSC (категория обслуживания счета). У них есть общий столбец BillNo. Используя мой запрос CTE, я получаю результат, упомянутый в URL (выше)

Требуемый мне выходной запрос должен фильтровать только записи, у которых ServiceCategory_Name равно "IP Package"

Еслиэто IP-пакет, который мне нужно сослаться на столбец - ServiceName . Следовательно, в этом примере меня интересует строка 4, т. Е. Имя службы как «Паховая герниопластика GIPSA - односторонняя (DELUXE)»

Остальные строки не нужны.

ЕСЛИ имя_службы не является IP-пакетом, имя_службы должно отображаться как НЕДЕЙСТВИТЕЛЬНОЕ.

В идеале. должно быть 2 строки (для каждого номера счета), которые должны показывать вывод, например

enter image description here

Я написал свой запрос CTE (см. URL-адрес dbfiddle). Здесь я попытался поместить «Имеющий предложение» (см. здесь ) в Группу, что должно отфильтровать IPPackage, но при этом будет удален 2-й ряд.

Предложения и помощь приветствуются!

Ответы [ 2 ]

1 голос
/ 17 октября 2019

Попробуйте, это решит вашу проблему.

оставьте соединение BSCTemp bsc на mat.BillNo = bsc.Billno и bsc.ServiceCategory_Name = 'IP Package'

Вам необходимо добавитьто есть bsc.ServiceCategory_Name = 'IP Package'. Это дает правильный вывод.

Пожалуйста, обратитесь к https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=f2c6ea9939dc2d71565b3c491daa304a.

1 голос
/ 17 октября 2019

на основании приведенного выше описания, если вы поставите

where ServiceCategory_Name  = 'IP PACKAGE'

после

from cte

, это отфильтрует только пакет. затем вы подсчитываете UNION, чтобы добавить строку без значений

where ServiceCategory_Name  = 'IP PACKAGE'
group by MonthName, BillNo, BSCBillNo, Service_Name, ServiceCategory_Name
UNION
select top 1 MonthName,
0 as amt,
0 as [Internal Dr Visit Charges]
,0 as [External Dr Visit Charges],
cte.BillNo,
cte.BSCBillNo,
'' AS Service_Name,
'' AS ServiceCategory_Name
from cte
order by amt desc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...