https://stepby-yun.tistory.com/194
MAX MIN order by limit 차이 뭘 쓸지
https://stepby-yun.tistory.com/193 한시간씩 이자율 넣기 while문 사용, update,order by limit https://stepby-yun.tistory.com/192?category=554522 mysql while 여러시도.. https://stepby-yun.tistory.com/1..
stepby-yun.tistory.com
지난 시간
max나 min쓰자~
이번에는 줄어드는 계산식
이전코드에서
빼면 되겠거니~~했는데!
오잉
아 이전에는 deposit_amount가 점점 커져서
MIN 최소값에 이자율곱해서 이자액 구했는데
이제는 줄어들어서 최대값 사용해서 이자금액 구해야하는구나
MAX로 바꿈
음...
아 최대값에서 빼주니까 안줄어드는구나
최소값(마지막행)에서 빼주기로 변경
굿굿~
이자율만 수정하면 끝
use test;
truncate sequence;
set @setTime = (select subtime(now(),'00:02:00'));
insert into sequence (name,deposit_date,deposit_amount,interest_amount) values ('이소윤',@setTime,10000000,0);
drop procedure if exists pro;
delimiter //
create procedure pro()
begin
while (select MAX(id) from sequence) < 10 do
INSERT INTO sequence (name,deposit_date,deposit_amount,interest_amount)
select
(select MIN(name) from sequence),
date_add((select MAX(deposit_date) from sequence),INTERVAL 1 hour),
((select MIN(deposit_amount) from sequence) - (select MAX(interest_amount) from sequence)),
(select MAX(deposit_amount) from sequence)* 0.02;
end while;
end //
delimiter ;
call pro();
select * from sequence;
이거는 order by 랑 섞어서 쓴거.
use test;
truncate sequence;
set @setTime = (select subtime(now(),'00:02:00'));
insert into sequence (name,deposit_date,deposit_amount,interest_amount) values ('이소윤',@setTime,10000000,0);
drop procedure if exists pro;
delimiter //
create procedure pro()
begin
while (select MAX(id) from sequence) < 10 do
INSERT INTO sequence (name,deposit_date,deposit_amount,interest_amount)
select
(select MIN(name) from sequence),
date_add((select MAX(deposit_date) from sequence),INTERVAL 1 hour),
((select deposit_amount from sequence where deposit_amount order by id desc limit 1) - (select MAX(interest_amount) from sequence)),
(select deposit_amount from sequence where id =1)* 0.02;
end while;
end //
delimiter ;
call pro();
select * from sequence;
이제 예산이 0 될때까지 해볼게
끝~
+
참고로 >= 0로 해봤는데
0보다 크거나 같다고 하니까 에러뜸
이거보니 타입이 unsigned로 되어있는데
음수값이 나오려고 해서 에러뜨는거라함
아하 deposit_amount가 0일때 while문을 돌리면
interest_amount 값을 0에서빼게 되니까
음수값이 들어가게 되는구나
https://wwwnghks.tistory.com/122
[Mysql] SQL 오류 (1690): BIGINT UNSIGNED value is out of range in 에러 발생시
SQL 오류 (1690): BIGINT UNSIGNED value is out of range in.... 위의 에러 발생 이유는 아래와 같이 컬럼명의 타입이 unsigned 로 되어있고, 음수의 값이 발생되는 경우 발생된다. select (컬럼명 - 100) from..
wwwnghks.tistory.com
'데이터베이스 > mySQL' 카테고리의 다른 글
피보나치 수열 사용해서 이자액 빼기..실패.. (0) | 2022.05.13 |
---|---|
mysql null값 뜨는 이유, where조건문...empty set (0) | 2022.05.13 |
MAX MIN order by limit 차이 뭘 쓸지 (0) | 2022.05.13 |
한시간씩 이자율 넣기 while문 사용, update,order by limit (0) | 2022.05.12 |
mysql while 여러시도.. (0) | 2022.05.10 |