我是数据库和MySQL的新手。我正在使用MySQL数据库开发一个库存跟踪软件后端。我在MYSQL查询中有问题。
我需要跟踪一段时间内的价格变化。如何根据日期选择两个不同的列和行。例如我需要MYSQL从日期'2019-02-27'返回'打开'值和从日期'2019-03-01'返回'关闭'的值;
并计算两个值之间的百分比差异(十进制)。
是否有可能在MYSQL中进行这种查询,或者我应该编写发送两个查询的程序。一个从``2019-02-27''获得``开放'',另一个从``2019-03-01''获得``关闭''。
这是我的问题http://sqlfiddle.com/#!9/eb23e3/6
的SQL小提琴这是任何示例表
symbol | date | open | close | low | high
----------------------------------------------------
HCL | 2019-02-27 | 36.00 | 38.00 | 34.00 | 40.00
HCL | 2019-02-28 | 37.00 | 39.00 | 36.00 | 41.00
HCL | 2019-03-01 | 38.00 | 42.00 | 37.00 | 46.00
我如何从日期'2019-02-27'获得'开放'和从日期'2019-03-01'获得'关闭' 然后计算百分比差异,例如(2019-02-27)``开盘''值为36.00和(2019-03-01)``收盘''值为42.00,因此百分比百分比差为+16.6%。
答案 0 :(得分:0)
通过此操作,您需要获得3列:
select t.*,
concat(
case when t.close > t.open then '+' else '' end,
truncate(100.0 * (t.close - t.open) / t.open, 1)
) percentdif
from (
select
(select open from dailyprice where date = '2019-02-27') open,
(select close from dailyprice where date = '2019-03-01') close
) t
请参见demo
答案 1 :(得分:0)
我建议运行两个不同的查询,然后计算返回值的差异