我有一个 Excel 文件,它使用 SQL 查询来提取一段时间内我们药房的药品库存使用情况。
我现在只需要去数据 > 连接 > 属性 > 定义然后只需编辑我想要的日期范围的命令文本即可。我想让它更方便用户使用,这样办公室里的任何人都可以更改日期。
是否有任何类型的脚本可以添加来更改 SQL 查询中的日期值?
我认为它必须是某种 Visual Basic 宏。我只希望在打开文档时弹出一个窗口,显示“输入开始日期”,然后弹出一个窗口,显示“输入结束日期”。如果需要,这是查询。
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
好吧,我通过更多的研究找到了答案。我将两个日期改为问号,并将参数改为询问“开始日期”和“结束日期”,它似乎正确地执行了查询并输出了正确的日期。