2015-01-07 4 views
0

올바른 질문인지 잘 모릅니다.동일한 테이블에서 여러 열을 선택하십시오.

나는 두 개의 필드 (대변 및 차변)가있는 테이블을 가지고 있습니다. 각 필드의 합계를 만들고 총 잔액이있는 새 열을 만듭니다.

SELECT Sum(libromayor.debe) AS IngresosGlobal, 
Sum(libromayor.haber) AS GastosGlobal,   
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalGlobal 
FROM libromayor 

이 : 내가 좋아하는 것이 무엇

SELECT Sum(libromayor.debe) AS IngresosActual, 
Sum(libromayor.haber) AS GastosActual, 
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalActual 
FROM libromayor 
WHERE Year(libromayor.fechaevento) = Year(CurDate()) 

두 쿼리를 결합하는 것입니다 만, 6이 경우에 결과를 떠나 I 별도로 이가 잘 작동 여러 쿼리를 생성 하지 3이 쿼리 시도와 같이 열 :

:

SELECT Sum(libromayor.debe) AS IngresosGlobal, 
Sum(libromayor.haber) AS GastosGlobal,   
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalGlobal 
FROM libromayor 
UNION 
SELECT Sum(libromayor.debe) AS IngresosActual, 
Sum(libromayor.haber) AS GastosActual, 
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalActual 
FROM libromayor 
WHERE Year(libromayor.fechaevento) = Year(CurDate()) 

주어진 결과가 이것이다

IngresosGlobal GastosGlobal TotalGlobal 
1521.00   1575.00  -54.00 
121.00    100.00   21.00 

하지만 난 당신이 이런 식으로 할 수

IngresosGlobal GastosGlobal TotalGlobal  IngresosActual  GastosActual  TotalActual 
1521.00   1575.00  -54.00   121.00    100.00   21.00 
+1

http://stackoverflow.com/questions/26786079/mysql-parallel-merge-two-nrelated-queries-with-same-ofrows –

+0

원한다면 다음과 같은 간단한 두 단계 과정을 따라야합니다. 1. 아직 수행하지 않았다면 문제를보다 쉽게 ​​복제 할 수 있도록 적절한 DDL (및/또는 sqlfiddle)을 제공하십시오. 2. 아직 수행하지 않았다면, 1 단계에서 제공된 정보와 일치하는 원하는 결과 세트를 제공하십시오. – Strawberry

답변

1

이 결과에주는 VIEW 만들 싶습니다

SELECT Sum(libromayor.debe) AS IngresosGlobal, 
sum(IF(ear(libromayor.fechaevento) = Year(CurDate()), libromayor.debe, 0)) AS IngresosGlobal2 
FROM libromayor 

P.S.을 당신에게 아이디어를주기 위해 하나의 열에 만 게재

+0

아이디어를 주셔서 감사합니다. @Urill 쿼리가 마침내 이렇게되었습니다 : – Jose

관련 문제