再发一次整理好的数据..求救!!!再献出80分

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:21:50
有表tblDataEntry和表tblPhone
tblDataEntry是记录客户的相关信息,tblPhone是装载客户电话信息,同一个PhoneNo
有可能有对应在不同的Ref
每个tblDataEntry的Ref可以对应在tblPhone有多条记录,Principal是卡号,
也可以同个卡号在多个Ref里,状态分为Settle,Active,Return
tblDataEntry有以下数据
Ref Principal Status Time
LA04 002 Settle 06:30
LB05 003 Return 06:28
LB06 006 Return 06:20
LB07 005 Return 06:15
LB08 006 Return 06:50
LB09 007 Active 06:30

tblPhone有以下数据
Ref PhoneNo
LB04 1350
LB04 1357
LB05 1357
LB05 1350
LB05 1369
LB06 1357
LB06 1350
LB07 1355
LB08 1351
LB08 1357
LB09 1350

tblDataEntry中的Status是Settle的记录在
tblPhone里PhoneNo相同的数,如tblDataEntry是LB04的Status是
Settle,它在tblPhone的电话是1357和1350,此时PhoneNo有1357,1350的
有LB05, LB06,LB08,LB09,求出LB05,LB06,LB08,LB09在tblDataEntry的记录,(and要Principal相同的情况下,如LB06,LB08,只能取其一个,而且他们的Status是Return,要求取Time最迟那个.最后只能取LB08)
结果为:
Ref Principal Status Time
LB05 003 R

SELECT phoneno, ref
INTO #a
FROM tblPhone
WHERE (ref IN
(SELECT ref
FROM tblDataEntry
WHERE (status = 'settle')))

SELECT *
INTO #b
FROM tblDataEntry
WHERE ref IN
(SELECT DISTINCT ref
FROM tblPhone