sql语句

goldocean 2003-08-25 09:56:28
我有一个表1,字段 日期,商场,销售额
 例如: 上一个月10.26号,到本月11.25号,记为11月销售
     上一个月11.26号,到本月12.25号,记为12月销售
..... ......... ..........

......... ....... ........
我想按月份统计每个商场的销售额。
  如:日期,  商场,销售额
    2001.5   01  ...
    2001.5 02 ....     
... .. ..
... ... ..
请问这样的sql语句怎么实现,先谢谢各位大哥 。
...全文
36 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
onejune4450 2003-08-27
  • 打赏
  • 举报
回复
beckhambobo() 的写法好,但应改回25

select decode(sign(to_char(日期,'dd')-25),1,trunc(add_months(日期,1),'mm'),trunc(日期,'mm')),商场,sum(销售额)
from 表1
group by 商场,decode(sign(to_char(日期,'dd')-25),1,trunc(add_months(日期,1),'mm'),trunc(日期,'mm'));
goldocean 2003-08-27
  • 打赏
  • 举报
回复
我的结果确实是不对
beckhambobo 2003-08-27
  • 打赏
  • 举报
回复
结果哪里出错?计算<=25属于本月,>25属于下一个月计算,应没错
beckhambobo 2003-08-27
  • 打赏
  • 举报
回复
结果哪里出错?计算<=25属于本月,>25属于下一个月计算,应没错
goldocean 2003-08-27
  • 打赏
  • 举报
回复
beckhambobo()的写法有误,结果不对,改为25也不对。
goldocean 2003-08-26
  • 打赏
  • 举报
回复
To:onejune4450(中文字符)
能解释一下你写的这句话吗?谢谢
beckhambobo 2003-08-26
  • 打赏
  • 举报
回复
select decode(sign(to_char(日期,'dd')-24),1,trunc(add_months(日期,1),'mm'),trunc(日期,'mm')),商场,sum(销售额)
from 表1
group by 商场,decode(sign(to_char(日期,'dd')-24),1,trunc(add_months(日期,1),'mm'),trunc(日期,'mm'));
onejune4450 2003-08-26
  • 打赏
  • 举报
回复
写错了,-24

select decode(sign((日期-trunc(日期,'mm'))-24),1,to_char(trunc(日期+10,'mm'),'YYYYMM'),to_char(trunc(日期,'mm'),'YYYYMM')),商场,sum(销售额)
from 表1
group by 商场,decode(sign((日期-trunc(日期,'mm'))-24),1,to_char(trunc(日期+10,'mm'),'YYYYMM'),to_char(trunc(日期,'mm'),'YYYYMM'));
goldocean 2003-08-26
  • 打赏
  • 举报
回复
To:onejune4450(中文字符)
你好,我执行了一下,
结果,有部分数据结果不正确,就说7月份有一个商场结果正确另一个结果不正确,没有规律,你在帮我看看,我没有看出毛病
snowy_howe 2003-08-26
  • 打赏
  • 举报
回复
f=decode(str,a,a1,b,b1,c1);
意思是
如果str = a 那么
f=a1;
如果str = b 那么
f=b1;
如果str 为其他值 那么
f=c1;
goldocean 2003-08-26
  • 打赏
  • 举报
回复
To:onejune4450(中文字符)
decode()是什么意思,
 刚学oracle,手头也没有资料,帮帮忙。
onejune4450 2003-08-26
  • 打赏
  • 举报
回复
select decode(sign((日期-trunc(日期,'mm'))-25),1,to_char(trunc(日期+10,'mm'),'YYYYMM'),to_char(trunc(日期,'mm'),'YYYYMM')),商场,sum(销售额)
from 表1
group by 商场,decode(sign((日期-trunc(日期,'mm'))-25),1,to_char(trunc(日期+10,'mm'),'YYYYMM'),to_char(trunc(日期,'mm'),'YYYYMM'));

trunc(日期)返回参数日期所在月份的第一天,
sign(数字)正数返回1,零返回0,负数返回-1
不谢
bzszp 2003-08-25
  • 打赏
  • 举报
回复
select trunc(日期+5,mm),商场,sum(销售额) from 表1 group by 商场,trunc(日期+5,mm);
onejune4450 2003-08-25
  • 打赏
  • 举报
回复
未测试
select decode(sign((日期-trunc(日期,mm))-25),1,trunc(日期+10,mm),trunc(日期,mm)),商场,sum(销售额)
from 表1
group by 商场,decode(sign((日期-trunc(日期,mm))-25),1,trunc(日期+10,mm),trunc(日期,mm));
goldocean 2003-08-25
  • 打赏
  • 举报
回复
To: bzszp(SongZip) 如果我这个月份有31号,这句话行吗

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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