1

У меня есть файл Excel, который использует SQL-запрос для проверки использования лекарств в нашей аптеке за определенный период времени.

В настоящее время я просто должен пойти в Данные> Соединения> Свойства> Определение и просто отредактировать текст команды для диапазона дат, который я хочу. Я хотел сделать его немного более удобным для пользователей, чтобы любой в офисе мог изменять даты.

Есть ли какой-нибудь сценарий, который я могу добавить, чтобы изменить только значение даты в запросе SQL?

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

SELECT a.patid
    , a.patname
    , a.ndc
    , a.ccid
    , a.DrugLabelName
    , a.PackType
    , sum(a.Qty) AS TotQty
    , sum(isnull(a.ActCost, 0)) AS ActCost
    , Sum(CASE 
            WHEN a.ElecAdj = 1
                AND a.ElecAdj2 = 0
                THEN a.Payor1PaidAmt + a.PatientPayAmt
            WHEN a.ElecAdj = 1
                AND a.ElecAdj2 = 1
                THEN a.Payor1PaidAmt + a.Payor2PaidAmt + a.PatientPayAmt
            WHEN a.ElecAdj = 0
                AND a.ElecAdj2 = 1
                THEN a.Payor2PaidAmt + a.PatientPayAmt
            ELSE a.TtlPrice + a.CoPay
            END) AS Revenue
    , Sum(CASE 
            WHEN a.Reversed = 0
                THEN 1
            ELSE CASE 
                    WHEN a.transtype IN (
                            'P'
                            , 'B'
                            , 'Q'
                            , 'U'
                            )
                        THEN 1
                    ELSE CASE 
                            WHEN a.CreditAmt IS NOT NULL
                                THEN 0
                            ELSE - 1
                            END
                    END
            END) AS NumRxs
    , a.FacID
    , b.FacName
FROM Rx..Hrxs a
LEFT OUTER JOIN Fac..Facilities b ON a.FacID = b.FacID
WHERE a.DispenseDt BETWEEN '11/01/2012' / STARTDATE /
        AND '11/30/2012' / STARTDATE /
    AND a.PharmId = 'cps' / PHARMID /
    AND coalesce(a.UDRx, 0) = 0
    AND a.packtype = 'PHDEF'
GROUP BY a.PatID
    , a.patname
    , a.FacID
    , b.FacName
    , a.CCID
    , a.Ndc
    , a.DrugLabelName
    , a.packtype
ORDER BY a.FacID
    , a.DrugLabelName

1 ответ1

2

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .