100分求一SQL

yijianbiaoxue 2006-07-14 02:56:17
现有两个表如下:
create table sales --销售表
(
day_key date, --销售日期
prd_cod char(3), --product code(产品代码)
amount Number(15,2) --对应该天该产品的销售收入
)


create table prd_info --产品信息表
(
prd_cod char(3), --产品代码
div_comcod char(3) --分公司代码
)
其中 div_comcod 与prd_cod 是一对多的关系

现有一需求:
求 对与每个prd_cod, 其日期在20060501和20060531内的销售收入, 在其所在的div_comcod中所占的比例.

不知我是否已经描述清楚, 求高手解答,谢谢
...全文
219 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yijianbiaoxue 2006-07-14
  • 打赏
  • 举报
回复
再问一个问题::::::::


假设有如下表:
create table student --学生信息表
stu_id char(3), --学号
stu_name varchar2(40) --姓名
)

在oracle存储过程中我想动态拼接一个SQL语句:
V_Sql := 'select * from student where stu_name != 'Jerry' '
execute immediate V_Sql
当时问题出现了:
我要得到学生姓名不等于jerry的纪录; 因为Jerry是一个字符型数据,所以要在
Jerry前后加上单引号'才算正确, 但是拼接的时候,单引号会被去掉,
所以我拼接出的SQL是 select * from student where stu_name != Jerry
用这个SQL执行的时候会出错


请问如何解决这个问题?高手回答,谢谢


czbbbs 2006-07-14
  • 打赏
  • 举报
回复
sum(amt) over(partition by div_comcod)
是分析函数的用法。
结果 是按照div_comcod分组累计(amt)的值。
LinZhongBao 2006-07-14
  • 打赏
  • 举报
回复
不好意思,
我的那个不行啊,
看少了条件了
呵呵
LinZhongBao 2006-07-14
  • 打赏
  • 举报
回复
select t1.prd_cod, t1.a1 / a2 ,
from (select sum(amount) a1, prd_cod
from sales
where day_key < '20060531' and day_key > '20060501'
group by prd_cod) t1,
(select sum(amount) a2 from sales where day_key < '20060531' and
day_key> '20060501') t2
yijianbiaoxue 2006-07-14
  • 打赏
  • 举报
回复
下面这个我倒没用过,有人能给一下详细说明吗?
over(partition by div_comcod)
yijianbiaoxue 2006-07-14
  • 打赏
  • 举报
回复
欢迎其他人参与讨论
yijianbiaoxue 2006-07-14
  • 打赏
  • 举报
回复
可以了
谢谢了
我原来也想了一个SQL,不过比较复杂,就不拿出来献丑了
zxhcloth 2006-07-14
  • 打赏
  • 举报
回复
yijianbiaoxue () 您好!

我写了个SQL应该可以解决你的问题,由于我现在没有环境测试所以不敢保证是否正确,你可以去测试下,也希望以下语句能给你些启发!

select prd_cod,div_comcod,amt,amt/sum(amt) over(partition by div_comcod) as percent from (
select b.prd_cod,b.div_comcod,sum(a.amount) as amt from sales a,prd_info b
where a.prd_cod = b.prd_cod
and day_key between to_date('20060501','yyyymmdd') and to_date('20060531','yyyymmdd')
group by b.prd_cod,b.div_comcod
)

Thanks
Hima

17,089

社区成员

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

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