Флаг дубликатов отчетов SSRS - PullRequest
0 голосов
/ 28 мая 2019

В настоящее время я делаю отчет о сср из базы данных по динамике Великих равнин.

Это довольно простой отчет с несколькими столбцами. Все работает нормально, но в GP, при создании счета-фактуры или счета на возврат, иногда GP выдает тот же идентификатор счета. На самом деле он не отображается как дублированный, потому что для GP у Invoice и Return могут / могут быть одинаковые идентификаторы, потому что они не одного типа. Не спрашивай меня почему ..

Так что для моего отчета, когда я начинаю исследование с параметров, кратных значениям, с моим SopNumber (Bill ID), он дает мне правильную информацию. Но теперь я хотел бы иметь флаг для той информации, которая равняется идентификатору счета и имеет счет-фактуру и возврат одновременно.

Поскольку для GP является нормальным иметь два разных типа документов для одного и того же идентификатора, я не могу попросить свой отчет удалить причину возврата или счета в другом случае, счет-фактура может быть важным документом, а в другом - , Возврат.

В моем tablix я не показываю идентификатор счета, потому что мне не нужна информация, кроме случаев, когда есть это "дублирование".

Мне также хотелось бы, чтобы после флажка (выделенная строка) в верхней части моего отчета предложение показывало что-то вроде: «Эти документы конфликтуют: 000123123». Таким образом, с помощью этой информации, показывающей мой идентификатор, я теперь могу войти в параметр с несколькими значениями и удалить это число.

Я хочу получить эти 2 флага, потому что я делаю исчисление из суммы моих документов, и если эти 2 будут там, это сделает мой расчет неправильным.

Надеюсь, вы, ребята, сможете мне помочь. Если это так, заранее большое спасибо!

Я работал над несколькими разными выражениями, но так и не получил желаемого результата. Использовать предыдущее выражение и равно, но не смог найти, как сделать так, чтобы он равнялся Инвойсу и Возврату, а SopNumber - то же самое.

select CASE SOP10200.SOPTYPE
                WHEN 1 THEN 'QUOTE'
                WHEN 2 THEN 'ORDER'
                WHEN 3 THEN 'INVOICE'
                WHEN 4 THEN 'RETURN'
                WHEN 5 THEN 'BACK ORDER'
                WHEN 6 THEN 'FULLFILLMENT ORDER'
                END AS SOPTYPE,
                sop10200.SLPRSNID,
                sop10200.XTNDPRCE as ExtendedPrice,
                sop10200.SOPNUMBE,
                iv00101.ITMCLSCD as FAMILYCLASS,
                sop10100.DOCDATE

from sop10200
left join iv00101 on sop10200.ITEMNMBR = iv00101.ITEMNMBR
left join sop10100 on sop10200.SOPNUMBE = sop10100.SOPNUMBE

WHERE SOP10100.DOCDATE BETWEEN '2018-01-01 00:00:00.000' AND '2035-01-01 00:00:00.000' 
union all

select  CASE SOP30300.SOPTYPE
                WHEN 1 THEN 'QUOTE'
                WHEN 2 THEN 'ORDER'
                WHEN 3 THEN 'INVOICE'
                WHEN 4 THEN 'RETURN'
                WHEN 5 THEN 'BACK ORDER'
                WHEN 5 THEN 'FULLFILLMENT ORDER'
                END AS SOPTYPE,
                sop30300.SLPRSNID,
                sop30300.XTNDPRCE as ExtendedPrice,
                sop30300.SOPNUMBE,
                iv00101.ITMCLSCD as FAMILYCLASS,
                sop30200.DOCDATE

from sop30300
left join iv00101 on sop30300.ITEMNMBR = iv00101.ITEMNMBR
left join sop30200 on sop30300.SOPNUMBE = sop30200.SOPNUMBE

WHERE SOP30200.DOCDATE BETWEEN '2018-01-01 00:00:00.000' AND '2035-01-01 00:00:00.000'

ORDER BY SOPNUMBE desc

1 Ответ

0 голосов
/ 28 мая 2019

Исправьте меня, если я ошибаюсь, но звучит так, будто вам нужен способ узнать, есть ли дублирующая запись для отчета, и использовать это в расчете?

Вы можете выполнить подзапрос для получениясчет, и если это больше, чем 1, у вас есть дубликат записи

РЕДАКТИРОВАТЬ:

SELECT *, (IF 
    (SELECT Count(S1.SOPTYPE) FROM sop10200 S1 WHERE T1.BillID = S1.BillID ) > 1 THEN "Duplicate " ELSE "" END) AS DuplicateCheck
FROM sop10200 T1

Приведенное выше решение даст вам значение, которое вы можете использоватьна каждой странице, чтобы сообщить, есть ли у него дубликат BillID.

...