반응형
MySQL에서 (flow) 쿼리의 (stock) 결과를 축적하는 방법
계좌가 신용인 경우 합산하고 차변인 경우 차감하는 질문이 있습니다.
쿼리 번호 1 - 흐름
SELECT year(data), month(data),
(
SUM(IF(Credito='Conta Corrente Itau', valor, 0))-
SUM(IF(Debito='Conta Corrente Itau', valor, 0))
)
AS Fluxo
FROM base
GROUP BY YEAR(data), MONTH(data)
잘 작동하고 다음과 같은 것을 얻을 수 있습니다.
2015 4 -9.999999999996362
2015 5 0.059999999997671694
2015 6 -139.6999999999971
2015 7 140.15999999999804
2015 8 466.85999999999876
2015 9 -81.24999999999818
2015 10 -525.2499999999991
제가 결과를 누적해서 특정 계좌의 흐름이 아니라 잔액을 주는 것만 빼면 완벽합니다.
누적되는 쿼리를 찾았습니다.
쿼리 번호 2 - 누적:
SELECT data, base, (@total := @total + base) AS ValorTotal
FROM (
SELECT data,
SUM(VALOR)
AS base
FROM base
WHERE
(debito="Conta Corrente Itau")
GROUP BY YEAR(DATA), MONTH(DATA)
) AS T,
(SELECT @total:=0) AS n;
하지만 계정의 잔액을 갖기 위해 위의 (작동하는) 쿼리 1번 코드 전체를 누적 쿼리 안에 어디에 넣어야 하는지에 대해서는 다소 불분명합니다.
쿼리 2에서 SELECT 문 전체를 교체하려고 했지만 다음을 받았습니다.unknown column 'data' in field list오류:
SELECT data, base, (@total := @total + base) AS ValorTotal
FROM (
SELECT year(data), month(data),
(
SUM(IF(Credito='Conta Corrente Itau', valor, 0))-
SUM(IF(Debito='Conta Corrente Itau', valor, 0))
)
AS Fluxo
FROM base
GROUP BY YEAR(DATA), MONTH(DATA)
) AS T,
(SELECT @total:=0) AS n;
내가 이걸 어떻게 할 수 있는지 아는 사람?
미리 감사드립니다.
하위 쿼리의 열에 별칭을 사용해야 할 것 같습니다.예를 들어,
SELECT Y,(@total := @total + Fluxo) AS ValorTotal
FROM (
SELECT year(data) AS Y, month(data) AS M,
(
SUM(IF(Credito='Conta Corrente Itau', valor, 0))-
SUM(IF(Debito='Conta Corrente Itau', valor, 0))
) AS Fluxo
FROM base
GROUP BY YEAR(DATA), MONTH(DATA)
) AS T,
(SELECT @total:=0) AS n;
별칭이 있는 하위 쿼리T이름이 있는 열만 반환(Y,M,Fluxo)그리고 오직 그것들만 사용할 수 있습니다.
언급URL : https://stackoverflow.com/questions/47523971/how-to-accumulate-stock-result-of-flow-query-in-mysql
반응형
'codememo' 카테고리의 다른 글
| setTimeout/clearTimeout 문제 (0) | 2023.09.15 |
|---|---|
| jQuery에서 태그 이름을 제공할 수 있습니까? (0) | 2023.09.15 |
| 레이아웃을 부풀려서 사용자 정의 보기를 작성하시겠습니까? (0) | 2023.09.15 |
| 도커 컴포지트를 사용하는 PHP MARIADB PHPMYADMIN 문제 (0) | 2023.09.15 |
| gitlab 개인 저장소에서 npm 모듈 설치 (0) | 2023.09.15 |