由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - plsql问题求解答,包子求问
相关主题
为啥Oracle stored procedure 里面不建议用 temporary table?15万收入怎么样
DB2 Stored Procedure Error Handler大家考OCP都去哪里上课?
[转载] a PLSQL questionPL SQL 问题
Oracle SQL Tunning Problem!TSQL->PL SQL
Re: 精通SQL,VB,JAVA,C++(optional)的developer多么? (转载)SQL 题目,包子有谢!
plsql 求救--速度太慢了, 咋办呢【征文】Oracle Advanced PL/SQL 系列
advices please on learning Oracle数据库显示的问题
DW developer 位置的代码在线测试考什么语言?谢谢!学习Oracle的开始喽 - SQL/PLSQL (ZZ from CINAOUG)
相关话题的讨论汇总
话题: sql话题: do话题: 1000话题: pl话题: cannot
进入Database版参与讨论
1 (共1页)
j*******n
发帖数: 130
1
做作业遇到麻烦了,请各位大牛帮帮忙。
如图,在每个segmentid,load一定重量的货物,然后运送到下个segment。
要求算出在货物运输的过程中,货物的重量*货物的距离。
比如这个表里,要算的结果是:
1000*400+(1000+4000)*480+(1000+4000+7000)*360+(1000+4000+7000+11000)*
600+(1000+4000+7000+11000+5000)*240

多谢了
d***e
发帖数: 793
2
This is MySQL solution. You can try to adjust to PL/SQL
SELECT SUM(product)
from
(
select t1.distance*sum(t2.gweight) product from test_seg as t1
join test_seg as t2 on t1.segid >= t2.segid
group by t1.segid
) result
;
j*******n
发帖数: 130
3
谢谢,我试了你的代码,思路应该是对的
但是有错误,问题出在sum(t2.gweight)这里,这个出来的结果只有一个值,所以和t1.
distance相乘就出错了。有什么好的解决办法吗?
谢谢回复!

【在 d***e 的大作中提到】
: This is MySQL solution. You can try to adjust to PL/SQL
: SELECT SUM(product)
: from
: (
: select t1.distance*sum(t2.gweight) product from test_seg as t1
: join test_seg as t2 on t1.segid >= t2.segid
: group by t1.segid
: ) result
: ;

B*****g
发帖数: 34098
4
90%+的数据库版SQL问题可以用partition by解决,自己狗lead/lag

【在 j*******n 的大作中提到】
: 做作业遇到麻烦了,请各位大牛帮帮忙。
: 如图,在每个segmentid,load一定重量的货物,然后运送到下个segment。
: 要求算出在货物运输的过程中,货物的重量*货物的距离。
: 比如这个表里,要算的结果是:
: 1000*400+(1000+4000)*480+(1000+4000+7000)*360+(1000+4000+7000+11000)*
: 600+(1000+4000+7000+11000+5000)*240
:
: 多谢了

d***e
发帖数: 793
5
group时候把t1.distance加上,我用mysql不会报错,因为会用top 1 value,是一样的

t1.

【在 j*******n 的大作中提到】
: 谢谢,我试了你的代码,思路应该是对的
: 但是有错误,问题出在sum(t2.gweight)这里,这个出来的结果只有一个值,所以和t1.
: distance相乘就出错了。有什么好的解决办法吗?
: 谢谢回复!

l******b
发帖数: 39
6

beijing老大的东西都是经典.呵
对后台应用程序, 是不是如果如果可以用SQL的地方,
都尽量不用数组之类的?

【在 B*****g 的大作中提到】
: 90%+的数据库版SQL问题可以用partition by解决,自己狗lead/lag
B*****g
发帖数: 34098
7
From TK:
I have a pretty simple mantra when it comes to developing database software,
and I have written this many times over the years:
You should do it in a single SQL statement if at all possible.
If you cannot do it in a single SQL statement, do it in PL/SQL.
If you cannot do it in PL/SQL, try a Java stored procedure.
If you cannot do it in Java, do it in a C external procedure.
If you cannot do it in a C external procedure, you might want to
seriously think about why it is you need to do it.
http://www.oracle.com/technetwork/issue-archive/2007/07-mar/o27

【在 l******b 的大作中提到】
:
: beijing老大的东西都是经典.呵
: 对后台应用程序, 是不是如果如果可以用SQL的地方,
: 都尽量不用数组之类的?

j*******n
发帖数: 130
8
有点不一样,改半天终于出结果了,非常感谢。包子已发

【在 d***e 的大作中提到】
: group时候把t1.distance加上,我用mysql不会报错,因为会用top 1 value,是一样的
:
: t1.

l******b
发帖数: 39
9

software,
仔细读了TK的这个帖子, 学到不少, 谢谢.

【在 B*****g 的大作中提到】
: From TK:
: I have a pretty simple mantra when it comes to developing database software,
: and I have written this many times over the years:
: You should do it in a single SQL statement if at all possible.
: If you cannot do it in a single SQL statement, do it in PL/SQL.
: If you cannot do it in PL/SQL, try a Java stored procedure.
: If you cannot do it in Java, do it in a C external procedure.
: If you cannot do it in a C external procedure, you might want to
: seriously think about why it is you need to do it.
: http://www.oracle.com/technetwork/issue-archive/2007/07-mar/o27

j*******n
发帖数: 130
10
麻烦再帮我看下这个问题吧。。
这次要做的结果是:
1000*360+(1000+5000)*600+(1000+5000+3500)*240
表里的第一行distance和最后一行的gweight用不到,不用算到公式里。
多谢了

【在 d***e 的大作中提到】
: group时候把t1.distance加上,我用mysql不会报错,因为会用top 1 value,是一样的
:
: t1.

d***e
发帖数: 793
11
把》=换成> 就行了,你做作业,得自己想想吧,同学。

【在 j*******n 的大作中提到】
: 麻烦再帮我看下这个问题吧。。
: 这次要做的结果是:
: 1000*360+(1000+5000)*600+(1000+5000+3500)*240
: 表里的第一行distance和最后一行的gweight用不到,不用算到公式里。
: 多谢了

j*******n
发帖数: 130
12
嗯,你回复晚了,之前我自己想出来了,哈哈

【在 d***e 的大作中提到】
: 把》=换成> 就行了,你做作业,得自己想想吧,同学。
1 (共1页)
进入Database版参与讨论
相关主题
学习Oracle的开始喽 - SQL/PLSQL (ZZ from CINAOUG)Re: 精通SQL,VB,JAVA,C++(optional)的developer多么? (转载)
想考几个Oracle的证书plsql 求救--速度太慢了, 咋办呢
我也去考了SQL Server的证了advices please on learning Oracle
讲座的时间可以置顶吗?DW developer 位置的代码在线测试考什么语言?谢谢!
为啥Oracle stored procedure 里面不建议用 temporary table?15万收入怎么样
DB2 Stored Procedure Error Handler大家考OCP都去哪里上课?
[转载] a PLSQL questionPL SQL 问题
Oracle SQL Tunning Problem!TSQL->PL SQL
相关话题的讨论汇总
话题: sql话题: do话题: 1000话题: pl话题: cannot