对每天的间隔进行减法,除法和乘法过滤数据

时间:2017-09-21 11:49:01

标签: mysql

您好,我的 MYSQL 数据库包含名为new-sell的表,其中包含以下列registeredDayproductFinalPrice已登记的购买价值和进入的日期。

|=====================================|
|  productFinalPrice | registeredDay  |
|=====================================|
|     600,00 | 2017-09-19 18:45:16    |
|     435,50 | 2017-09-18 18:45:16    |
|     817,60 | 2017-09-17 18:45:16    |
|     176,00 | 2017-09-16 18:45:16    |
|     600,00 | 2017-09-15 18:45:16    |
|     600,00 | 2017-09-14 18:45:16    |
|     600,00 | 2017-09-13 18:45:16    |
|     842,10 | 2017-09-20 18:45:16    |
|     415,20 | 2017-09-21 18:45:16    |
|     230,45 | 2017-09-22 18:45:16    |
|     400,00 | 2017-09-20 18:45:16    |
|     375,00 | 2017-09-20 18:45:16    |
=======================================

我的想法如下;

productFinalPriceBETWEEN DATE_ADD(CURDATE(), INTERVAL -1 day) AND CURDATE()中以单独的时间间隔 获取BETWEEN DATE_ADD(CURDATE(), INTERVAL -2 day) AND CURDATE() DATE_ADD的想法是2017-09-20 可用 除法除法乘法的计算可用

收到根据列出上面两个天数应该以这种方式处理 划分乘以

示例:

第一个间隔1天 - R$ 1617,10导致总2017-09-19第二个间隔2天 R$ 2217,10导致总计{{ 1}} 记住这些数据 变量根据更改 一天 信息 请求

2217,10 - 1617,10 = 600÷1617,10 = 0,37×100 = 37,10%

某人能否想法如何适合 计算 查询mysql < /强>

能够获取 输入值 R$ 1617,10R$ 2217,10 通过这些咨询

SELECT productFinalPrice FROM new_sell WHERE registeredDay BETWEEN DATE_ADD(CURDATE(), INTERVAL -1 day) AND CURDATE()

SELECT productFinalPrice FROM new_sell WHERE registeredDay BETWEEN DATE_ADD(CURDATE(), INTERVAL -2 day) AND CURDATE()

可能以适合拟合 减法< / strong>,划分乘法 模型 间隔日过滤 exibity结果< / strong>使用BETWEEN DATE_ADD(CURDATE(), INTERVAL -1 day) AND CURDATE()

很抱歉,问题的长度,但希望提供有关我的问题的最佳信息。

我没有找到任何关于如何使用时间间隔过滤器加入计算的内容,如果有人可以帮助我,我将不胜感激:]

1 个答案:

答案 0 :(得分:0)

你能试试吗?我用你的样本数据,它的工作原理。请跟我说。

SELECT   PRICE_T / (PRICE_T2-PRICE_T) * 100 AS PERC
FROM (SELECT SUM(CASE WHEN RN=1 THEN PRICE_I2 ELSE 0 END) AS PRICE_T
           , SUM(PRICE_I2) AS PRICE_T2
      FROM (SELECT CAST(registeredDay AS DATE) AS DDATE
            , SUM(productFinalPrice) AS PRICE_I2
            , @RN:=@RN+1 AS RN
            FROM new_sell 
            CROSS JOIN (SELECT @RN:=0) X
            WHERE registeredDay BETWEEN DATE_ADD(CURDATE(), INTERVAL -2 day) AND CURDATE()
            GROUP BY CAST(registeredDay AS DATE)
            ORDER BY CAST(registeredDay AS DATE)
           ) B
    ) C;

输出:

PERC
37,1057513914657