12
返回列表 发新帖
楼主: 02a000

[原创] 请教个sql问题..

[复制链接]
论坛徽章:
0
11#
发表于 2007-11-29 11:58 | 只看该作者
sum(fxdl) = 0

使用道具 举报

回复
论坛徽章:
31
授权会员
日期:2007-01-16 17:14:42本田
日期:2013-12-23 08:42:16马自达
日期:2014-01-12 15:13:572014年新春福章
日期:2014-04-30 08:32:502014年世界杯参赛球队: 比利时
日期:2014-07-11 14:38:26马上加薪
日期:2014-08-06 08:46:32马上加薪
日期:2014-08-09 15:02:22马上加薪
日期:2014-10-22 13:25:34暖羊羊
日期:2015-06-16 16:04:52美羊羊
日期:2015-07-06 13:48:25
12#
发表于 2008-1-2 15:56 | 只看该作者
哈哈

使用道具 举报

回复
论坛徽章:
4
祖国60周年纪念徽章
日期:2009-10-09 08:28:00ERP板块每日发贴之星
日期:2010-07-27 01:01:02ITPUB9周年纪念徽章
日期:2010-10-08 09:31:22设计板块每日发贴之星
日期:2011-06-13 01:01:01
13#
发表于 2008-1-22 21:54 | 只看该作者

这个贴子挺经典,楼主我来告诉你

试了一下,用一个SQL语句还真难实现,还是用存储过程吧,因为你要求的是连续三个月发电为0的,如用户1月2月都是0,然后3月不是0了,那么就不在统计范围,所以需要用一个递归的查询功能才可以找到你需要的用户数。

使用道具 举报

回复
论坛徽章:
68
季节之章:夏
日期:2009-05-11 09:11:29马上有房
日期:2014-02-18 16:42:022014年世界杯参赛球队: 阿根廷
日期:2014-06-20 11:05:02itpub13周年纪念徽章
日期:2014-10-08 15:19:55itpub13周年纪念徽章
日期:2014-10-08 15:19:55itpub13周年纪念徽章
日期:2014-10-08 15:19:55itpub13周年纪念徽章
日期:2014-10-08 15:19:55itpub13周年纪念徽章
日期:2014-10-08 15:19:55itpub13周年纪念徽章
日期:2014-10-08 15:19:55itpub13周年纪念徽章
日期:2014-10-09 13:16:56
14#
 楼主| 发表于 2008-1-23 19:35 | 只看该作者
我现在是做了个程序查询,但是效率非常的低.楼上的有什么好方法么?请指教啊..

使用道具 举报

回复
论坛徽章:
2
ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282013年新春福章
日期:2013-02-25 14:51:24
15#
发表于 2008-1-24 13:06 | 只看该作者
原帖由 Array02a000 于 2007-9-13 10:50 发表
我想查询连续几个月发行电量为0的的户,sql怎么写啊...有高手知道吗?



这个问题可以用在给用户停电上,看哪些用户连续6个月不交电费,我就停他的电.

使用道具 举报

回复
论坛徽章:
2
ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282013年新春福章
日期:2013-02-25 14:51:24
16#
发表于 2008-1-24 13:43 | 只看该作者
建一个表
-- Create table
create table T_CHARGERECORD
(
  F_YEAR  NUMBER(18),
  F_MONTH NUMBER(18),
  F_MONEY NUMBER(18,4)
)
tablespace POWER
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );

录入下面的数据:
2007        1        12.0000
2007        2        23.0000
2007        3        43.0000
2007        4        45.0000
2007        5        0.0000
2007        6        23.0000
2007        7        213.0000
2007        8        43.0000
2007        9        0.0000
2007        10        0.0000
2007        11        0.0000
2007        12        0.0000
2008        1        0.0000
2008        2        0.0000
2008        3        21.0000
2008        4        0.0000

执行下面的SQL(查连续6个月金额为0)
SELECT *
FROM
(SELECT f_Year,f_Month,f_DateTime - ROWNUM AS f_GroupID,f_Money
FROM
(SELECT * FROM
(SELECT f_Year,f_Month,f_Year * 12 + f_Month AS f_DateTime,f_Money
FROM t_ChargeRecord
WHERE f_Money = 0)
ORDER BY f_Year,f_Month))
WHERE f_GroupID IN
(SELECT f_GroupID
FROM
(SELECT f_Year,f_Month,f_DateTime - ROWNUM AS f_GroupID,f_Money
FROM
(SELECT * FROM
(SELECT f_Year,f_Month,f_Year * 12 + f_Month AS f_DateTime,f_Money
FROM t_ChargeRecord
WHERE f_Money = 0)
ORDER BY f_Year,f_Month))
GROUP BY f_GroupID
HAVING COUNT(*) >= 6)

得到下面的结果
2007        9        24091        0.0000
2007        10        24091        0.0000
2007        11        24091        0.0000
2007        12        24091        0.0000
2008        1        24091        0.0000
2008        2        24091        0.0000

其中第三列可以不输出.

使用道具 举报

回复
论坛徽章:
66
现任管理团队成员
日期:2011-05-07 01:45:08版主9段
日期:2013-04-21 02:21:02ITPUB年度最佳版主
日期:2014-02-19 10:05:27ITPUB年度最佳版主
日期:2013-01-30 17:30:25ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05优秀写手
日期:2013-12-18 09:29:15元宝章
日期:2015-02-10 19:57:54金牌徽章
日期:2015-02-10 19:59:42银牌徽章
日期:2015-02-10 19:59:42铜牌徽章
日期:2015-02-10 19:59:41
17#
发表于 2008-1-31 19:28 | 只看该作者
怎么发这里来了?写明具体需求吧

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表