mysql - MySQL 查询 - 12 个月的重复付款
问题描述
我有一个名为 PrePay 的付款数据库。客户一次性支付 12 个月。
我需要将单笔付款显示为 12 笔付款(12 条记录)。
这是我的查询:
SELECT account, startdate, servdef
FROM PAYHIST
WHERE account = 5543
startdate
是一个日期字段
这显示了 3 年的 3 笔付款:
我想在第一次付款后为每个帐户和 servdef 产生 11 笔付款。所以 06-22-2018 将有 11 条记录跟随它的几个月,即
你能告诉我如何制作这样的记录吗?
解决方案
加入一个表,该表返回您要将每行扩展到的月数。
SELECT account, DATE_ADD(startdate, INTERVAL n MONTH) AS startdate, servdev
FROM PAYHIST
CROSS JOIN (
SELECT 0 AS n
UNION
SELECT 1
UNION
SELECT 2
...
UNION
SELECT 11) AS q
WHERE account = 5543
ORDER BY startdate, n
推荐阅读
- php - 从 Laravel Nova 自定义工具访问 Laravel API
- git - 如何将未发布的提交从一个分支移动到另一个分支?
- apache-kafka - KSQL 流 - 遍历 JSON
- r - 在 R 中使用 sf 包中的 st_read 时,如何从我的 Postgre 表中获取正确的编码
- javascript - react-final-form 中的字段可以将自身标记为无效/阻止提交吗?
- reactjs - 无法在 laravel 项目中运行 npm install 如何修复它
- javascript - 在生产代码中模拟 JavaScript 对象
- r - 如何使用 rvest 从 R 中的网页中抓取字符串
- unity3d - 我有执行我的方法但忽略 if 语句的按钮
- sql - SQL递归循环