Friday, April 1, 2011

Sql get distnict value in sql

    
             
CREATE  PROCEDURE  check             
 @uid int                      
AS                     
begin           
         
declare @price int         
set @price=0         
         
DECLARE @temptable table                       
(                       
              
 PFP_MarketRentMin money ,          
 PFP_MarketRentMax money ,          
                  
 PFP_NumUnitsMin int ,                  
 PFP_NumUnitsMax int ,                   
                    
 PFP_StackWDOnly bit ,                   
 UnitType_Name varchar(50),                   
 Extra1_Name varchar(50),                   
 Extra2_Name varchar(50),                   
    
 )                       
                   
 INSERT INTO    @temptable                    
 SELECT  *,          
                      
          
     ut.CC_Value as UnitType_Name,                         
   e1.CC_Value as Extra1_Name,                         
     e2.CC_Value as Extra2_Name,                         
     e3.CC_Value as Extra3_Name,               
ISNULL(e4.specials_desc,'Call') AS 'special',  
CASE    
     

         
         

         

       
-charindex(convert(varchar,PFP_Deposit),'.',0)-2)))))) from apartment_units  WHERE             
AC_UID = @uid and PFP_NumBed=2 and PFP_Deleted = 0)   
        
WHEN  pfp_numbed = 3 THEN          
(select(CONVERT(varchar(12), min(convert(int,substring(convert(varchar,PFP_Deposit),0,len(convert(varchar,PFP_Deposit))-     
charindex(convert(varchar,PFP_Deposit),'.',0)-2)))))       
 +'-'+ (CONVERT(varchar(12),max(convert(int,ISNULL(substring(convert(varchar,PFP_Deposit),0,len(convert(varchar,PFP_Deposit))       
-charindex(convert(varchar,PFP_Deposit),'.',0)-2)       
,substring(convert(varchar,PFP_Deposit),0,len(convert(varchar,PFP_Deposit))       
-charindex(convert(varchar,PFP_Deposit),'.',0)-2)))))) from apartment_units  WHERE             
AC_UID = @uid and PFP_NumBed=3 and PFP_Deleted = 0)  
         

         
    
END AS bath   
 
          
FROM                            
 apartment_units                        
                      
 inner join CommonCodes ut on PFP_CC_ID_UNITTYPE = ut.CC_ID                         
 left outer join CommonCodes e1 on PFP_Extra1 = e1.CC_ID                         
 left outer join CommonCodes e2 on PFP_Extra2 = e2.CC_ID                         
 left outer join CommonCodes e3 on PFP_Extra3 = e3.CC_ID                
 left join apartment_complexes  e4 on ac_uid = e4.uid                          
WHERE               
     AC_UID = @uid and PFP_Deleted = 0                     
    ORDER BY  PFP_NumBed,PFP_NumBath,PFP_SqFt                     
     END         
     DECLARE @unique_floor table                       
     (                       
      PFP_NumBed tinyint           
     )                  
   insert into @unique_floor                       
   SELECT distinct PFP_NumBed FROM @temptable                    
   declare @min int                       
   declare @max int          
   declare @temp1 table                       
  (                       
  UID int,                   
 AC_UID int ,                   
 PFP_CC_ID_UNITTYPE int ,                   

 price varchar(50) , 
 bath varchar(10)  
  )                    
  set @min=(Select min(PFP_NumBed) from @unique_floor)          
  set @max=(Select max(PFP_NumBed) from @unique_floor)          
           
  While (@min<=@max)                       
  BEGIN                       
    PRINT @min            
  insert into @temp1                  
  SELECT TOP 1 * FROM @temptable where PFP_NumBed =@min   
  
   
  order by uid desc          
  SET @min=(SELECT min(112) from @unique_floor where PFP_NumBed>@min)          
  END                       
  SELECT *,         
CASE  
     
WHEN  cgecj = 6 THEN '6 12(s)'          
END AS 12
  FROM @temp1

No comments:

Post a Comment