现我创建了一个基表,比如叫table_1表.里面有这么一些字段:
buildid(楼栋Id),
projectname(项目名称),
roomtype(户型类别,比如单间配套,一室一厅,二室一厅...等),
day(成交日期),
buildarea(建筑面积),
buildvalue(成交金额)
等字段。
我现在想写一个视图,以buildid来显示不同‘建筑面积’等数据来。
比如说,一个buildid为001,它所对的项目名称为****_1,建筑面积是小于30平米,还是>30平米
例子基表数据有:buildid  district projectname        compname               roomtype          use         buildarea 
--------------------------------------------------------------------------------------------------------------
22946038 皇家区 国际家纺城 涌鑫地产有限公司   1 一般成套住宅    4 二室二厅   59.5 buildbalue    day
------------------------------
4487692.00    2011-3-4buildid  district projectname        compname          roomtype          use         buildarea 
--------------------------------------------------------------------------------------------------------------
22628651 丹东区 宗申动力城 宗申地产有限公司 1 一般成套住宅 4 二室二厅  82.23
buildbalue    day
-------------------------------
358145.00     2011-3-4  buildid  district projectname            compname          roomtype          use         buildarea 
--------------------------------------------------------------------------------------------------------------
23255372 黄北区 同原江北鸿恩寺项目     同原地产有限公司  1 一般成套住宅   1 单间配套   80.8
buildbalue    day
-------------------------------
606847.00 .  2011-3-4  如果buildid是相同的话,都把套数(count(*)),建筑面积(buildid)和成交金额(buildvalue)累加,累加后判断累加的值是否小于或者大于某个值。
想显示的效果是这样的:
builid  projectname  sum(buildare) sum(buildvalue) taoshu<=30 taoshu30-40 taoshu>40 buildarea<30
--------------------------------------------------------------------------------------------------------- 
buildarea30-40 buildarea>40 buildvalue<30 buildvalue30-40 buildvalue>40谢谢各位高手了。我创建的表用的是Oracle11g版本的

解决方案 »

  1.   

    select builidid,max(projectname),sum(buildare),sum(buildvalue),
    case when count(1)<30 then 1 else 0 end as 套数小于30,
    case when count(1)>=30 and count(1)<=40 then 1 else 0 end) as 套数30至40,
    case when count(1)>40then 1 else 0 end as 套数大于40,sum(case when buildare<30 then 1 else 0 end) as 面积小于30,
    sum(case when buildare>=30 and zmianji<=40 then 1 else 0 end) as 面积30至40,
    sum(case when buildare>40then 1 else 0 end) as 面积大于40 ,sum(case when buildvalue<30 then 1 else 0 end) as 金额小于30,
    sum(case when buildvalue>=30 and zjine<=40 then 1 else 0 end) as 金额30至40,
    sum(case when buildvalue>40then 1 else 0 end) as 金额大于40
    from table1 group by builidid
      

  2.   

    你好!caoleione。基本上是这样的。谢谢你