Como inserir o intervalo de datas na palavra para consulta SQL?

1

Eu tenho um arquivo do Excel que usa uma consulta SQL para extrair o uso de estoque dos medicamentos em nossa farmácia por um período de tempo.

Atualmente, só preciso ir para Dados > Conexões > Propriedades > Definição e apenas editar o texto do comando para o intervalo de datas que eu quero. Eu queria torná-lo um pouco mais amigável para que qualquer pessoa no escritório fosse capaz de mudar as datas.

Existe algum tipo de script que eu possa adicionar para alterar apenas o valor de data na consulta SQL?

Eu assumi que teria que ser uma macro visual básica de algum tipo. Eu só quero um pop-up para vir ao abrir o documento que diz "Data de início de entrada" e, em seguida, um que diz Data de término de entrada ". Aqui está a consulta, se necessário.

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
    
por slhck 10.12.2012 / 19:22

1 resposta

2

Bem, eu descobri mais pesquisas. Eu mudei as duas datas para pontos de interrogação e mudei os parâmetros para perguntar "data de início" e "data de término" e parece estar executando a consulta corretamente com a saída de data correta.

    
por 11.12.2012 / 19:56