一对多,怎么查出最小的,如果不存在多端时用一端数据补齐?
有两个表 
 表A 
 BASE_ID,BASE_NAME,BASE_PRICE 
 B1                  ,         铅笔,         2.00 
 B2                  ,         钢笔,         23.00 
 B3                  ,   签字笔芯,   2.00       
 表B    
 ID   ,BASE_ID,   BASE_RPRICE,USER_TYPE 
 1      ,B1               ,2.00                        ,一级会员 
 2      ,B1               ,1.50                        ,二级会员 
 3      ,B2               ,22.50                     ,一级会员    
 4      ,B2               ,19.90                     ,二级会员 
 5      ,B2               ,19.00                     ,三级会员   
 如何查询得到下面结果? 
 B1,钢笔,2.00,1.50,二级会员 
 B2,钢笔,23.00,19.00,三级会员 
 B3,签字笔芯,2.00,2.00,原价   
 主要是结果里要得到 
 B3,签字笔芯,2.00,2.00,原价 
 这样的结果,不知道怎么才能够替换掉? 
------解决方案--------------------create table A(BASE_ID varchar(10),BASE_NAME varchar(20),BASE_PRICE decimal(10,2)) 
 insert A select  'B1 ', '铅笔 ',2.00 
 union all select  'B2 ', '钢笔 ',23.00 
 union all select  'B3 ', '签字笔芯 ',2.00   
 create table B(ID int,BASE_ID varchar(10),BASE_RPRICE decimal(10,2),USER_TYPE varchar(20)) 
 insert B select 1, 'B1 ',2.00, '一级会员 ' 
 union all select 2, 'B1 ',1.50, '二级会员 ' 
 union all select 3, 'B2 ',22.50, '一级会员 ' 
 union all select 4, 'B2 ',19.90, '二级会员 ' 
 union all select 5, 'B2 ',19.00, '三级会员 '   
 select aa.BASE_ID,BASE_NAME,aa.BASE_PRICE,isnull(bb.BASE_RPRICE,aa.BASE_PRICE),isnull(bb.USER_TYPE, '原价 ')  
 from B bb right join A aa 
 on bb.BASE_ID=aa.BASE_ID 
 where not exists 
 ( 
 	select 1 from B where BASE_ID=bb.BASE_ID and BASE_RPRICE <bb.BASE_RPRICE 
 )   
 drop table A,B   
 /* 
 BASE_ID    BASE_NAME            BASE_PRICE                                      
 ---------- -------------------- ------------ ------------ --------------------  
 B1         铅笔                   2.00         1.50         二级会员 
 B2         钢笔                   23.00        19.00        三级会员 
 B3         签字笔芯                 2.00         2.00         原价   
 (所影响的行数为 3 行) 
 */
------解决方案--------------------create table A(BASE_ID nvarchar(10),BASE_NAME nvarchar(10),BASE_PRICE decimal(15,2)) 
 insert A select   'B1 ', '铅笔 ',   2.00 
 union all select  'B2 ', '钢笔 ',   23.00 
 union all select  'B3 ', '签字笔芯 ', 2.00     
 create table B(ID int,BASE_ID nvarchar(10), BASE_RPRICE decimal(15,2),USER_TYPE nvarchar(10)) 
 insert B select  1  , 'B1 '     ,2.00        , '一级会员 ' 
 union all select 2  , 'B1 '     ,1.50        , '二级会员 ' 
 union all select 3  , 'B2 '     ,22.50       , '一级会员 ' 
 union all select 4  , 'B2 '     ,19.90       , '二级会员 ' 
 union all select 5  , 'B2 '     ,19.00       , '三级会员 '     
 select *, 
 min_price=isnull((select min(BASE_RPRICE) from B where BASE_ID=tmp.BASE_ID),BASE_PRICE), 
 USER_TYPE=isnull((select USER_TYPE from B where BASE_ID=tmp.BASE_ID and