MariaDB社区

标题: 新手求指教 [打印本页]

作者: yuanzai32    时间: 2011-9-28 15:16
标题: 新手求指教
本帖最后由 yuanzai32 于 2011-9-28 15:44 编辑

公司要求做一个周销售排行榜
id     turnover
1       120.00
2        80.00
3         60.00
4           50.00
1        720.00
1           50.00
2           60.00
3           50.00
...
....
.....
要实现最终结果是
id    turnover
1    ....
2    ....
3    ....
4    ....
5   .....
需要用到什么,因为以前确实没接手这个,完全不明白该学习什么,求指教万分感谢

这个因为任务比较赶,只能有针对性的学习,希望各位大大能说下要用到哪些,然后我去学习= =
作者: kider    时间: 2011-9-29 09:45
一条SQL就应该可以搞定:
select id, sum(turnover) as turnover from table group by id order by id;
作者: je_ck    时间: 2011-9-30 09:10
order by id
kider确定 ?
作者: yuanzai32    时间: 2011-10-24 16:01
kider 发表于 2011-9-29 09:45
一条SQL就应该可以搞定:
select id, sum(turnover) as turnover from table group by id order by id;

多谢
作者: yuanzai32    时间: 2011-10-24 16:02
je_ck 发表于 2011-9-30 09:10
order by id
kider确定 ?

多谢!~~
作者: yuanzai32    时间: 2011-10-27 09:29
学这个越学越觉得不简单啊,又有问题更新了要麻烦各位了
create procedure ColSalesmanSum(in dateBegin date,in dateEnd date,in dateType varchar(20))

begin
DECLARE amount decimal;
DECLARE Salesman,statDate varchar(128);
DECLARE mark int;

delete from skt68;  //这句起什么用呢
SET mark=0;     
作者: yuanzai32    时间: 2011-10-27 09:33
if (dateType='Year') then
begin
DECLARE curdeal_1 CURSOR FOR
select sum(skt43.skf610),skt57.skf772,CONCAT(YEAR(skt43.skf611)) from skt57 left join (skt43,skt42) on (skt43.skf616//所在合同=skt42.skf587//合同编号 and skt57.skf772//办事处人员编号=skt42.skf589//合同表业务员 and skt43.skf615//来自哪个合同=1 and skt43.skf611//收款时间>=dateBegin and skt43.skf611收款时间<=dateEnd) GROUP BY (CONCAT(YEAR(skt43.skf611))),skt57.skf772//办事处人员编号;
           DECLARE CONTINUE HANDLER FOR NOT FOUND
           SET mark=1;
           open curdeal_1;
           repeat
           FETCH curdeal_1 into amount,Salesman,statDate;
       if(mark < 1)then
         if (Salesman not in ('138','132'))then
         begin
         INSERT INTO skt68 (SKF911,SKF909,SKF910) select tblemployee.Name,statDate,amount from tblemployee where tblemployee.ID=Salesman;
         end;
         end if;
       end if;
       UNTIL mark=1
       end REPEAT;
       CLOSE curdeal_1;      
end;


我理解为是执行这个存储程序就会删除原有的SKT68里面的数据,然后再插入新的数据,是吗
作者: yuanzai32    时间: 2011-10-31 11:01
本帖最后由 yuanzai32 于 2011-10-31 11:25 编辑

继续求指教
关于库表主键的自动增长功能
这个功能主要是起什么作用呢,如果我第一次添加主键信息时没添加自动增长,后续怎么设置



补充下:比如  我的表格如下
编号    时间     购买物品    单价   数量  
...             ...              .....             ..        ....



编号为主键 未设置自动增长,感觉我添加数据后,默认只能添加一条,再添加会提示记录已存在。。。是这个自动增长的原因吗



再再补充一点,刚开始编号是设置自动增长的,但是设置后提示1264错误  我查阅发现是字段错误(我设置的为64位整数),更改字段后(为固定128位)然后就提示为1067错误。。。迷茫了。。。而这个数据库已经有的表里面很多其它表编号都是设置的64位整数和固定128位
作者: yuanzai32    时间: 2011-10-31 11:10
另外,咨询下,现在MYSQL认证考试有哪些,和OCA OCP那些差别大吗
另另外,感谢你们团队的精彩回答




欢迎光临 MariaDB社区 (http://123.56.88.72/) Powered by Discuz! X3.2