SQL如何写 100

A表和B表数据会随着录入而增加,我想得到一个表三个字段,第一个字段:学号,第二个:该学号对应的费用和,第三个字段:费用刚刚超过1000、2000、10000时的时间。(拿... A表和B表数据会随着录入而增加,我想得到一个表三个字段,第一个字段:学号,第二个:该学号对应的费用和,第三个字段:费用刚刚超过1000、2000、10000时的时间。(拿101号举例.达到1000的时间是7:20,记录下来,但是在15:21时他的费用和达到了1500不记录时间,后期达到2000时再把7:20替换掉) 展开
 我来答
longrenyingdc8ecb1
2015-05-13 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2368万
展开全部
你这个不是一个单纯的sql而是触发器(触发器里面是一个plsql块,带判断的)。
触发条件是after insert b,也就是b表输入以后。
为了方便,建议在新建立的表里加一个总费用字段,这样好计算一些。
(1)你要查询A表是否已经输入,(我不知道你的输入顺序,如果能确保A比B早,那么不用查询A表是否输入。)这个比较简单只要查询单号是否存在就可以了,如果存在那么继续执行。
(2)在本表中找相应的学号,如果没有那么就insert。
(3)判断金额,就是你说的1000,2000,10000,如果是,那么就update。判断的方式也简单,如果原来不存在这个学号,那么就直接判断,如果存在那么用原来的加上这次的。判断条件分别为
原费用<1000 and 原费用+这次费用>1000,其他的两个判断和这个类似。如果判断成功,那么就update,否则不改。
个人能想到的就是这个方法,不过具体的需要一些试验才行,我还不到直接就能写出来的地步,而且肯定要经过修改的,这里可没有环境,只能你自己慢慢改了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式