请高手指教一下!谢谢

likly993 2011-07-27 04:53:40
现我创建了一个基表,比如叫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-4

buildid 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版本的
...全文
67 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
likly993 2011-08-01
  • 打赏
  • 举报
回复
你好!caoleione。基本上是这样的。谢谢你
caoleione 2011-07-28
  • 打赏
  • 举报
回复
是否正解给个回复
caoleione 2011-07-27
  • 打赏
  • 举报
回复
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
秋雨飘落 2011-07-27
  • 打赏
  • 举报
回复
真的么看懂

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧