数据内容那个要一条sql怎么查的
我现在是D.TotalPrice<1000000
这样写好几个sql
怎么用一行解决
select Count(D.TotalPrice)
FROM Deals as D INNER JOIN Houses as H ON D.HouseID = H.HouseID left join StreetInsert as S on H.HouseID=S.HouseID inner join StreetTable as T on S.StreetID=T.StreetID where H.FirstHandID=2 and D.TotalPrice<1000000
100-150万元 就要重新写了
所以就要分五个语句了
我本来就是这样分的
可是效率低
想用一句查
这些条件是固定的。
一下是结果:就是<100万元 我要一个sql where一下,100-150万元我也要写个sql  怎么一句解决<100万元 214 58.0%
100-150万元 61 16.5%
150-200万元 41 11.1%
200-300万元 33 8.9%
300-400万元 8 2.2%
400-600万元 2 0.5%
600-800万元 0 0.0%
800-1000万元 3 0.8%
1000-1500万元 0 0.0%
1500-2000万元 0 0.0%

解决方案 »

  1.   

    写一个带参的方法!你要变的是where里的条件啊,
      

  2.   

    SQL中有 case when 写一个存储过程 用case when 就可以了。
      

  3.   

    stringbuilder sb =new stringbuilder();sb.append("select Count(D.TotalPrice)
    FROM Deals as D INNER JOIN Houses as H ON D.HouseID = H.HouseID left join StreetInsert as S on H.HouseID=S.HouseID inner join StreetTable as T on S.StreetID=T.StreetID where H.FirstHandID=2 ");
    if(...)
    sb.append("and.....");
    if(...)
    sb.append("and.....");
    .........
      

  4.   

    select Count(D.TotalPrice),
        case  D.TotalPrice
        when D.TotalPrice>10000001 and D.TotalPrice<15000000 then '1000-1500万元'
        when D.TotalPrice>20000001 and D.TotalPrice<30000000 then '2000-3000万元'
        else '0' end
      
    FROM Deals as D INNER JOIN Houses as H ON D.HouseID = H.HouseID 
    left join StreetInsert as S on H.HouseID=S.HouseID
    inner join StreetTable as T on S.StreetID=T.StreetID
    where H.FirstHandID=2这样怎么不行呢
      

  5.   

    语句冲突select 和from有冲突,刚看,还不清楚原因
      

  6.   


    这样:select Count(D.TotalPrice),
      case  when D.TotalPrice>10000001 and D.TotalPrice<15000000 then '1000-1500万元'
      when D.TotalPrice>20000001 and D.TotalPrice<30000000 then '2000-3000万元'
      else '0' end
       
    FROM Deals as D INNER JOIN Houses as H ON D.HouseID = H.HouseID  
    left join StreetInsert as S on H.HouseID=S.HouseID
    inner join StreetTable as T on S.StreetID=T.StreetID
    where H.FirstHandID=2
    group by D.TotalPrice