0

我正在开发一个网站,用户在其中输入客户收到的表格中的金额,如果任何客户没有提供分期付款(金额),那么用户不会在表格中输入任何金额,并且用户希望获得基于违约客户的信息10天。所以我的问题是应该定义哪些表和属性来处理这种情况。

我的桌子是

客户(cId、姓名、预付款、折扣、余额)

分期付款(id、日期、金额、cId)

但是通过分期付款表,我没有得到如何生成那些在 b/c 10 天内没有支付任何款项的人的报告,因为我说用户不会在分期付款表中插入违约者的数据。提前致谢

4

4 回答 4

0

尝试这个

select * from clients where cid in (select cid from installments where amount is null and (date between DATE_ADD(curdate(),INTERVAL -10 DAY) and curdate())

Date_ADD将有助于获取过去 10 天的详细信息,然后再添加一个条件,这些条件在那些日子里没有支付任何费用。

于 2013-06-07T04:50:12.187 回答
0

这取决于您的installments.date字段是什么格式。以下是如何按客户的最近日期排序cid = 1

SELECT i.*
FROM installments i
INNER JOIN clients c ON c.cid = i.cid
WHERE c.cid = 1
ORDER BY i.date DESC

installments.date字段格式如何?它是日期时间字符串(例如'2007-12-15 23:50:26')、UNIX 时间戳(例如1111885200)还是其他?

于 2013-06-07T04:40:37.273 回答
0

为什么不添加nextPaymentDateforClient的表,例如:

Clients (cId, name, advance, discount, balance, nextPaymentDate)

所以,你可以像这样查询

SELECT * FROM Clients
WHERE DATEDIFF(CURDATE(),nextPaymentDate) >= 10;

您的Installments表格中仍然会有付款的详细信息,但每次客户付款时nextPaymentDate都会更新。

于 2013-06-07T04:53:33.887 回答
0
SELECT i.*
FROM installments i
right JOIN clients c ON c.cid = i.cid
WHERE date between DATE_ADD(curdate(),INTERVAL -10 DAY) and curdate()
于 2013-06-07T04:55:24.223 回答