Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
账龄报表的Mysql查询_Mysql - Fatal编程技术网

账龄报表的Mysql查询

账龄报表的Mysql查询,mysql,Mysql,我想使用mysql查询以矩阵格式创建当前、30、60、90天的账龄报告 比如说, 客户名称当前1-30 31-60>90总计 AAA 3000 1500 4500 BBB 2000 200 2200 总数 3000 3500 200 6700 我想得到这样的报告。当用户输入日期时,应检查duedate。当输入的日期>到期日时,获取账龄天数 如果agin days是今天,则获取netAnmount并显示在当前列中, 如果差异为1-30天,则下一列…等等 如何获取对此的查询 Gnaniyar Z

我想使用mysql查询以矩阵格式创建当前、30、60、90天的账龄报告

比如说,

客户名称当前1-30 31-60>90总计

AAA 3000 1500 4500

BBB 2000 200 2200

总数 3000 3500 200 6700

我想得到这样的报告。当用户输入日期时,应检查duedate。当输入的日期>到期日时,获取账龄天数

如果agin days是今天,则获取netAnmount并显示在当前列中, 如果差异为1-30天,则下一列…等等

如何获取对此的查询

  • Gnaniyar Zubair

假设您的桌子是这样的

CREATE TABLE invoices (
    -- ...some stuff ...
    client_id ...,
    due_date date ,
    amount_due ...,
    -- ... some more stuff ...
)
试试这个:

SELECT client_id,
    DATEDIFF(CURDATE(), due_date) AS days_past_due,
    SUM(IF(days_past_due = 0, amount_due, 0)),
    SUM(IF(days_past_due BETWEEN 1 AND 30, amount_due, 0)),
    SUM(IF(days_past_due BETWEEN 31 AND 60, amount_due, 0)),
    SUM(IF(days_past_due BETWEEN 61 AND 90, amount_due, 0)),
    SUM(IF(days_past_due > 90, amount_due, 0))
FROM invoices
GROUP BY client_id

嗨,john,我使用了上面的查询。当前日期为2009年5月8日,日期为2009年6月8日,但日期差显示为100。我必须改变日期的格式吗?请澄清Gnaniyar ZubairOOPS!事实上,减法在过去一个月内是行不通的。我将在答案中修复查询。嗨,john,我已将currentDate的格式更改为yyyy-MM-dd。现在它工作正常。非常感谢。我在“字段列表”错误中得到未知列“过期天数”