Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Sql查询以获取符合条件的记录_Php_Mysql_Sql - Fatal编程技术网

Php Sql查询以获取符合条件的记录

Php Sql查询以获取符合条件的记录,php,mysql,sql,Php,Mysql,Sql,我想计算一家特定公司的以下各项,即13: 总学分 二手信用卡 旧电话 我的数据如下图所示。 我已经计算了信用卡金额总和,即200+100+5000+100=5400 现在我想计算使用的信用,应该是这样的 200 + 100 + 5000 + 70 = 5370 值70是因为它来自上一个包 即信用额100-剩余信用额30=70 您可以看到充值日期,如果该日期大于当前日期,则套餐处于活动状态。所以,目前的活动包是第一个在上面的截图我已经附加 我怎样才能找到用过的信用卡 在同一场景中使用的呼叫总数

我想计算一家特定公司的以下各项,即13:

总学分 二手信用卡 旧电话 我的数据如下图所示。

我已经计算了信用卡金额总和,即200+100+5000+100=5400

现在我想计算使用的信用,应该是这样的

200 + 100 + 5000 + 70 = 5370
值70是因为它来自上一个包 即信用额100-剩余信用额30=70

您可以看到充值日期,如果该日期大于当前日期,则套餐处于活动状态。所以,目前的活动包是第一个在上面的截图我已经附加

我怎样才能找到用过的信用卡

在同一场景中使用的呼叫总数。。会的

200 / 0.24 = 833.33

100 / 0.24 = 416.667

5000 / 0.20 = 25000

70 / 0.30 = 233.33
因此,使用的调用将是上述调用的总和,约为26483.33

这是我的查询代码,它没有给出我需要的值:

SELECT (SELECT Sum(credit_amount) 
        FROM   `company_credit` 
        WHERE  `company_id` = 13) AS total_credit, 
       Sum(credit_amount / rate)  AS used_calls, 
       Sum(credit_amount)         AS used_credit 
FROM   `company_credit` 
WHERE  `company_id` = 13 
       AND recharge_date < Now() 
ORDER  BY `id` DESC 
此查询适用于公司_id=13。如果您为所有公司id计算相同的逻辑,只需删除WHERE条件并按公司id放置GROUP。您将获得所有公司的计算记录

尝试上面的查询

在这里,我只是使用CASE来指定哪些记录有剩余的信用

使用这个查询,你可以最终计算出你的短信总量,使用的积分,总积分


请看看这是否有用。

我不明白你的逻辑。为什么你只为那一张唱片而拿唱片?你是什么意思?我对进行一次查询以获取这些记录,然后我将在php中为不同的公司使用它,无论哪个公司当时登录。我只想做上面的查询。@TimBiegeleisen它的到期日大于当前日期_date@SagarGangwal美好的catch@AsfandyarKhan坚持下去。。!!
SELECT Sum(credit_amount) AS total_credit, 
       Sum(CASE WHEN recharge_date < Now() THEN (credit_amount / rate) ELSE ((credit_amount-credit_reamining) / rate) END )  AS total_sms, 
       Sum(CASE WHEN recharge_date < Now() THEN credit_amount  ELSE (credit_amount-credit_reamining) END )         AS used_credit 
FROM   `company_credit` 
WHERE  `company_id` = 13 
ORDER  BY `id` DESC 
SELECT SUM(credt_amount) ,
  SUM(
  CASE
    WHEN cr_date >
      (SELECT cur_date FROM tbl_eod_bod_stat
      )
    THEN credt_amount - credt_rem
    ELSE credt_amount
  END ) AS Used_Credit ,
  SUM(
  CASE
    WHEN cr_date >
      (SELECT cur_date FROM tbl_eod_bod_stat
      )
    THEN (credt_amount  - credt_rem)/rate
    ELSE ( credt_amount / rate)
  END) AS rateDiv
FROM tbl_company_2;