如何获取第一个交易日期,然后将其分隔到另一列

时间:2016-07-08 06:26:34

标签: mysql

我想将每个客户的第一个交易日期与另一列分开。我不擅长解释。希望下面的图片足以澄清我的问题..

enter image description here 我想生成像图片中的结果。 **我刚刚编辑了这张图片,以供参考我想要的结果。

这是我的平方米---> http://sqlfiddle.com/#!9/bebf5/1

2 个答案:

答案 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

http://sqlfiddle.com/#!9/bebf5/26/0