我试图为使用单元格值作为日期参数的数据库编写SQL命令。下面是一个没有单元格值的示例查询:
SELECT usda_cattle_auctions.weight_average, usda_cattle_auctions.average_price
FROM public.usda_cattle_auctions usda_cattle_auctions
WHERE (usda_cattle_auctions.report_date>={d '2012-03-24'} And usda_cattle_auctions.report_date<={d '2014-10-25'}) AND (usda_cattle_auctions.state='CO') AND (usda_cattle_auctions.gender='Steers') AND (usda_cattle_auctions.class_type='Feeder')
ORDER BY usda_cattle_auctions.report_date DESC我读了这篇文章:Excel: Use a cell value as a parameter for a SQL query
但是,当我调整这样的一个参数时:
SELECT usda_cattle_auctions.weight_average, usda_cattle_auctions.average_price
FROM public.usda_cattle_auctions usda_cattle_auctions
WHERE (usda_cattle_auctions.report_date>={d [MarketValCal$d3]} And usda_cattle_auctions.report_date<={d '2014-10-25'}) AND (usda_cattle_auctions.state='CO') AND (usda_cattle_auctions.gender='Steers') AND (usda_cattle_auctions.class_type='Feeder')
ORDER BY usda_cattle_auctions.report_date DESC查询将不再工作,因为我收到了无效的语法警告。我应该如何正确地构造这个查询?任何帮助都是非常感谢的。
编辑:
我取出引号,尝试使用无日期参数执行此操作,现在我得到了消息“绑定参数的#<参数标记的#”。
发布于 2015-08-20 15:22:41
我找到了解决我的问题的最好办法。您可以使用这样的查询来修改:
SELECT usda_cattle_auctions.weight_average, usda_cattle_auctions.average_price
FROM public.usda_cattle_auctions usda_cattle_auctions
WHERE (usda_cattle_auctions.report_date>= ? And usda_cattle_auctions.report_date<={d '2014-10-25'}) AND (usda_cattle_auctions.state='CO') AND (usda_cattle_auctions.gender='Steers') AND (usda_cattle_auctions.class_type='Feeder')
ORDER BY usda_cattle_auctions.report_date DESC通过转到data选项卡下的connection属性并单击definition来修改查询。只需替换命令文本,excel将在单击“确定”后询问参数。然后,一个参数按钮将显示在连接属性中,这样您就可以编辑参数。
https://stackoverflow.com/questions/32118523
复制相似问题