【问题标题】:SQL sum if style querySQL sum if 样式查询
【发布时间】:2018-11-03 02:54:57
【问题描述】:

我有一个包含 FillQty、Fill price、Bid 和 Ask 的数据集。

我正在尝试编写一个查询,该查询将查找执行价格在买入价和卖出价之间的执行情况。如果填充价格介于两者之间,我想为满足此条件的所有行添加 FillQty 并将其称为 PIQty。对于以下数据,我的 PIQty 将是 2100 股。

这个 sql 查询会是什么样子?

FillQty FillPrice   Bid Ask PiQTY
100 71.32       71.3    71.32   0
150 16.37       16.36   16.37   0
600 30.085      30.08   30.09   600
500 59.365      59.36   59.37   500
500 28.35       28.34   28.35   0
500 93.04       93.04   93.05   0
500 99.385      79.38   100 500
500 75      71.85   80.1    500
3350                    2100

【问题讨论】:

  • 我推测您想要一个 SQL 查询。您应该使用您正在使用的数据库进行标记。
  • 是的。谢谢你。更新
  • 我怀疑这是一个家庭作业问题...即使不是,这似乎是您在要求某人“钓到鱼”而不是教您钓鱼。您应该遵循一些关于 w3 学校的 SQL 教程。您正在寻找的是这样的案例陈述:w3schools.com/sql/func_mysql_case.asp
  • 你还没有命名数据库。

标签: sql sum case


【解决方案1】:

这个更新语句会做,包括表名而不是 TABLE

更新表集 PIQTY = FILLQTY WHERE FILLPRICE>=BID AND FILLPRICE

更新后,运行此获取PIQTY总数

从表中选择 SUM(PIQTY)

要得到总和而不更新试试这个,我认为语法正确无法检查

选择总和(填充数量) FROM(从表中选择 FILLQTY WHERE FILLPRICE>=BID AND FILLPRICE

【讨论】:

  • 谢谢,但我不想编写和更新此表。我只是想在不更新的情况下返回结果。这可能吗?
  • 你现在可以试试吗是的,有可能
【解决方案2】:

试试下面的方法。

选择填充数量 , 填充价格 , 投标 , 问 , CASE WHEN FillPrice > Bid AND FillPrice

【讨论】:

    【解决方案3】:

    带有 SUM() 的简单 SELECT

    SELECT *, SUM(fillQty) as PiQTY
    FROM table1
    WHERE fillPrice BETWEEN bid AND ask
    

    【讨论】:

      猜你喜欢
      • 2013-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多