【发布时间】:2014-02-13 22:43:33
【问题描述】:
我有一个如下表,我想运行一个脚本来为每个 CARE_ID 返回一个 PLAN_ID 值,这些是条件。我该怎么做?我在 SQL Server 2005 中编写脚本,但它需要向后兼容 SQL Server 2000。
- 如果
CARE_ID只有一个PLAN_ID,则返回PLAN_ID - 如果一个
CARE_ID有多个PLAN_IDs并且FIRST_TREATMENT_DATE的值为NULL则返回最大值PLAN_ID - 如果
CARE_ID有多个PLAN_IDs 并且FIRST_TREATMENT_DATE的值不是NULL,则返回PLAN_ID,它的最近日期为N5_2_MDT_DATE
我的计算表明脚本将返回
的PLAN_ID 值
1833,65,162,2929,67,93,44,1136,1046,1047,1048,1049,1050,1052,1870,2426
谢谢
PLAN_ID CARE_ID N5_2_MDT_DATE FIRST_TREATMENT_DATE
1833 1 20/08/2011 00:00 NULL
199 1 23/06/2010 00:00 NULL
65 4 27/11/2009 00:00 NULL
162 5 30/07/2010 00:00 NULL
54 5 15/11/2009 00:00 NULL
55 5 29/10/2009 00:00 NULL
63 5 03/09/2009 00:00 NULL
2929 9 29/01/2013 00:00 NULL
99 9 08/03/2010 00:00 NULL
95 9 04/02/2010 00:00 NULL
64 9 18/11/2009 00:00 NULL
67 106 14/01/2013 00:00 NULL
96 106 20/07/2009 00:00 NULL
93 107 23/02/2010 00:00 21/09/2012 00:00
44 108 25/12/2009 00:00 NULL
43 108 07/10/2009 00:00 NULL
1136 364 18/02/2011 00:00 19/02/2011 00:00
1122 364 26/01/2011 00:00 19/02/2011 00:00
1046 1661 25/01/2011 00:00 25/01/2011 00:00
1047 1662 25/01/2011 00:00 25/01/2011 00:00
1048 1663 25/01/2011 00:00 01/02/2011 00:00
1049 1665 25/01/2011 00:00 NULL
1050 1666 23/01/2011 00:00 01/02/2011 00:00
1052 1667 01/02/2011 00:00 01/02/2011 00:00
1870 1781 04/10/2010 00:00 10/02/2011 00:00
1869 1781 04/10/2010 00:00 10/02/2011 00:00
1868 1781 04/10/2010 00:00 10/02/2011 00:00
2426 2246 23/03/2012 00:00 01/07/2012 00:00
2275 2246 01/01/2012 00:00 01/07/2012 00:00
2170 2246 14/10/2011 00:00 01/07/2012 00:00
1784 2246 04/08/2011 00:00 01/07/2012 00:00
1940 2246 10/07/2011 00:00 01/07/2012 00:00
1637 2246 20/06/2011 00:00 01/07/2012 00:00
1539 2246 02/06/2011 00:00 01/07/2012 00:00
1538 2246 01/06/2011 00:00 01/07/2012 00:00
1536 2246 31/05/2011 00:00 01/07/2012 00:00
【问题讨论】:
-
单个
CARE_ID是否可以有一些行带有NULLFIRST_TREATMENT_DATE和其他行非NULL?并且(不影响这个问题)他们可以有不同的FIRST_TREATMENT_DATE值吗? -
@Damien_The_Unbeliever - FIRST_TREATMENT_DATE 的值基于 CARE_ID,因此这些值只会全为 NULL 或全为相同的日期,而 N5_2_MDT_DATE 的值基于 PLAN_ID。希望这可以验证。谢谢。
标签: sql sql-server-2005 sql-server-2000