mariadb/mysql에서 select 문에서 다음과 같은 방법으로 변수를 계산할 수 있습니다. 이 간단한 예에서는 날짜 범위를 만들고 변수를 사용하여 간단한 기초 잔액과 종가 잔액을 계산하고 매일 10을 지불합니다.SELECT 문에서 MARIADB 변수 POSTGRES 동일 함
with RECURSIVE dates as (
select '2017-11-01' as `dt`
union all
select adddate(dt, INTERVAL 1 DAY)
from dates
where dt < CURDATE()
)
select
@vardate:=d.dt
, @openbal
, @payment:= 10
, @closebal:= @[email protected]
, @openbal:[email protected]
from dates d;
내가 선택 성명에서 즉석에서 간단한 계산을 수행 할 수있는이 기술을 사용 결과 ....
╔══════════════╦════════════╦═══════════════╦═════════════╗
║ "ac_date" ║ "open_bal" ║ "trans_total" ║ "close_bal" ║
╠══════════════╬════════════╬═══════════════╬═════════════╣
║ "2017-11-01" ║ "0" ║ "10" ║ "10" ║
║ "2017-11-02" ║ "10" ║ "10" ║ "20" ║
║ "2017-11-03" ║ "20" ║ "10" ║ "30" ║
...
을 제공합니다. 내 질문은 PL/pgSQL 함수에서 이런 식으로 변수를 사용할 수 있습니까? 아니면 내가 간과하고있는 다른 방법이 있습니까?
Postgres에서 변수가 필요하지 않습니다. 당신은 단순히 창 함수를 사용할 수 있습니다. (이후 MySQL에서'with recursive'를 할 수 있습니까?) –
윈도우 함수를 사용하여 질문을하는 방법을 보여 주시겠습니까? 나는 그것이 개념적으로 도움이 될 것이라고 생각한다. 내가 일하는 쿼리는 일일이자를 계산하는 대출 일정을 생성하고 광범위하게 설명한 기술을 사용합니다. – ojf
출력이 어떻게 생성되는지 설명해야합니다. 지불 금액이 '1'로 설정되어 있지만 출력에 '10'이 표시됩니다. Alos 'trans_total'은 어디에서 왔습니까? 변수 중 하나에서 –