有挑战性的问题:满足某条件的列的数据窗口如何做?(详细见内)

守田人 2004-09-26 03:24:53
举例:
记录为

省份 项目编号 项目经费 重点项目的标志
河北 xxx01 35 0
河北 xxx02 45 1
山西 xxx03 20 1

需要统计的结果的数据窗口格式如下:

省份 项目个数 项目经费 重点项目的项目经费
------------------
河北 2 80 45
山西 1 20 20

我的数据窗口的语法如下:
SELECT "prj"."deptcode",
count(prj.name) as prj_cnt,
sum(prj.经费) as exp_cnt,
FROM "prj",
GROUP BY "prj"."省份"
可以计算出每省份项目的和,项目经费的和。
我的问题是:重点项目的项目经费的计算列的公式怎么写?是设置数据窗口的列的属性,还是修改我的sql语法?谢谢。
...全文
121 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lovepb123 2005-01-25
  • 打赏
  • 举报
回复
喜之郎 从思维定势中走出来,厉害!
wangxichen 2004-09-28
  • 打赏
  • 举报
回复
//我用了最后一种方法,按省创建了group,结果,河北省的跑到两个水平区里面去了,是重点的跑到一个区,不是重点的跑到一个区,怎么办啊?大虾救命。

分组时不加入重点项目的标志字段,只按照省份分组,在汇总时用case语句只统计标志为1的经费
yl_yz 2004-09-28
  • 打赏
  • 举报
回复
综合一下:
SELECT deptcode,
count(prj.name) as prj_cnt,
sum(prj.经费) as exp_cnt,
SUM(CASE 重点项目的标志 WHEN 1 THEN prj.经费 ELSE 0 END) AS 重点项目的项目经费
FROM prj
GROUP BY deptcode
ORDER BY deptcode
LinuxSon 2004-09-27
  • 打赏
  • 举报
回复
修改SQL语句相对容易一些。
klbt 2004-09-26
  • 打赏
  • 举报
回复
需要按省份排序。
守田人 2004-09-26
  • 打赏
  • 举报
回复
我用了最后一种方法,按省创建了group,结果,河北省的跑到两个水平区里面去了,是重点的跑到一个区,不是重点的跑到一个区,怎么办啊?大虾救命。
klbt 2004-09-26
  • 打赏
  • 举报
回复
两种方法均可,可以在数据窗口中按省份分组,作出组小记,创建计算域sum((if 重点项目的标志='1',prj,0))陈,然后把detail把带高度设置为零即可。
jdsnhan 2004-09-26
  • 打赏
  • 举报
回复
同意luotitan(泰坦)的。

如果在oracle环境下,换成decode就可以了。
luotitan 2004-09-26
  • 打赏
  • 举报
回复
SQL中加上 SUM(CASE 重点项目的标志 WHEN 1 THEN prj.经费 ELSE 0 END) AS 重点项目的项目经费试一下。
相关推荐
发帖
DataWindow

603

社区成员

PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
帖子事件
创建了帖子
2004-09-26 03:24
社区公告
暂无公告