【问题标题】:Filtering Data by multiple value SQL按多值 SQL 过滤数据
【发布时间】:2022-01-24 22:32:30
【问题描述】:

我喜欢使用 sql 查询来查询/过滤一些具有多个值的数据。但我一无所获。 这是我的代码。

gd = cal.get_date()
dfd = datetime.strptime(gd, '%m/%d/%y').strftime('%Y-%m-%d')

slspath = ('C:\\shgcgr\\RMWIN b4 patch 12.22.21\\SLS' + my + '.DBF')
slsdbf = DBF(slspath)
slsframe = DataFrame(iter(slsdbf))

dinerc = '1,4,5,7,8,13,14'

lunchdi = ps.sqldf("SELECT SUM(slsframe.total) AS 'netsales_for_lunch' From slsframe Where open_time >= '12:00:00' And open_time < '13:59:59' And date = '" + dfd + "'" + "And rev_center = '" + dinerc + "'")
lunchdidf = DataFrame(lunchdi)
print(lunchdidf)

提前致谢。

【问题讨论】:

  • 您能否提供有关您的问题的更多信息?代码是否会出现错误或不返回数据?如果它没有返回数据,你确定你的查询应该返回什么吗?
  • 返回无数据。
  • 您是否尝试过直接在服务器上运行查询?我认为这是了解它是否是服务器端问题的唯一方法。

标签: python sql dataframe sqldf


【解决方案1】:

dinerc 似乎是 rev_centers 的列表,因此您可能需要使用 IN 而不是 = ,试试这个:

lunchdi = ps.sqldf("SELECT SUM(slsframe.total) AS 'netsales_for_lunch' From slsframe Where open_time >= '12:00:00' And open_time < '13:59:59' And date = '" + dfd + "'" + "And rev_center IN (" + dinerc + ")")

【讨论】:

  • 非常感谢。我得到了我想要的输出值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-06
相关资源
最近更新 更多