我想将每个客户的第一个交易日期与另一列分开。我不擅长解释。希望下面的图片足以澄清我的问题..
我想生成像图片中的结果。 **我刚刚编辑了这张图片,以供参考我想要的结果。
这是我的平方米---> http://sqlfiddle.com/#!9/bebf5/1
答案 0 :(得分:0)
我相信PN_NO代表客户。我们需要根据PN_NO和Pay Date列执行行的排序。需要确定第一个交易日期。请尝试以下查询。
SELECT
SCHED_NO,
PN_NO,
PAY_PRIN,
PAY_DATE,
CASE WHEN PN_NO_Rank=1 THEN PAY_DATE ELSE '' END AS BEGIN,
CASE WHEN PN_NO_Rank <>1 THEN PAY_DATE ELSE '' END AS CR
FROM
(
SELECT
SCHED_NO,
PN_NO,
PAY_PRIN,
PAY_DATE,
@PN_NO_Rank := IF(@current_PN_NO = PN_NO, @PN_NO_Rank + 1, 1) AS PN_NO_Rank,
@current_PN_NO := PN_NO
FROM PAY_SCHED
ORDER BY PN_NO, PAY_DATE ASC
) AS Temp
答案 1 :(得分:0)
这应该有所帮助:
SELECT SCHED_NO, PN_NO, PAY_PRIN, PAY_DATE,
CASE WHEN pay_date = (select min(pay_date) from pay_sched where pn_no=ps.pn_no) THEN pay_date ELSE NULL END as "BEGIN",
CASE WHEN pay_date = (select min(pay_date) from pay_sched where pn_no=ps.pn_no) THEN NULL ELSE pay_date END as "CR"
FROM PAY_SCHED ps order by pn_no, pay_date