【问题标题】:SQL Query expensive calculation by date filters and column filterSQL Query 通过日期过滤器和列过滤器进行昂贵的计算
【发布时间】:2016-02-02 13:19:07
【问题描述】:

expens 表包含四个字段

(Date(Date),Breakfast(INT),Lunch(INT),Dinner(INT) Expense(INT))

我只需要按日期和按列过滤。

  1. 如果我选择明智的日期意味着我将在该日期获得费用金额 例如:特定日期的早餐+午餐+晚餐(Int)
  2. 如果只想要早餐意味着它必须在特定月份添加 (早餐+早餐)(INT) 例如:2 月早餐费用

【问题讨论】:

  • 到目前为止你尝试过什么?您可能想阅读,stackoverflow.com/help/how-to-ask
  • 你能显示一个你试过的查询吗?
  • 这是 5 列,而不是 4...
  • 语句 s1=c.createStatement(); String query=”SELECTS SUM (IF MONTHNAME (date)=”February”,Breakfast,0),(Breakfast+lunch+dinner) as total FROM Expense_Traze WHERE MONTHNAME (date) =”February” OR date=”2012-2- 11”; S1.execute(查询);

标签: java sql date


【解决方案1】:

语句 s1=c.createStatement();

String query=”SELECTS SUM (IF MONTHNAME (date)=”February”,Breakfast,0),(Breakfast+lunch+dinner) 总计 FROM Expense_Traze WHERE MONTHNAME (date) =”February” OR date=”2012-2-11”;

S1.execute(查询);


Table Expense_Traze

日期(日期) 早餐(INT) 午餐(INT) 晚餐(INT) 总计(INT)

2016-2-11 10 20 30 60

2016-2-11 30 20 10 60

如果是 2 月,则表示添加 SUM(早餐)为 40,即按列计算,如果不是,则表示将在 2016 年 3 月 15 日等特定日期将(早餐+午餐+晚餐)作为总计添加。

【讨论】:

  • 不知道是对是错。帮帮我先谢谢
猜你喜欢
  • 1970-01-01
  • 2015-01-01
  • 2013-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 2021-12-04
  • 2014-12-21
相关资源
最近更新 更多