2017-11-28 1 views
0

다음 12 개월 내에리스로부터의 총 수입을 계산하기 위해 아래 SQL 쿼리를 만들었습니다.MYSQL : 'total'행을 추가 할 연합 연산자

SELECT DISTINCT apartment.addressLine1, lease.monthlyRent, lease.duration, lease.roomNumber, lease.monthlyRent*lease.duration AS totalLeaseRent 
    FROM `lease` 
    INNER JOIN apartment on (lease.roomNumber) = (apartment.roomNumber) 
    left Join tenantLease on tenantLease.leaseID = lease.leaseID 
    WHERE tenantLease.live = 1 AND lease.duration <= 12 

이것은 다음과 같은 결과를 반환

AddressLine1 monthlyRent Duration(months) roomNumber totalLeaseRent 
Chlorine Gardens1200  9     GF02   10800 
May Road  800   12    GF03   9600 
Beech Hill  900   8     BG06   7200 
Ash Avenue  1000  12    AA04   12000 

내가 지금 totalLeaseRent의 전체를 포함하는 다른 행을 가질 수 있어야합니다. 나는 다음과 같은 코드를 시도했지만 점점 오류 코드 유지 한

AddressLine1 monthlyRent Duration(months) roomNumber totalLeaseRent 
    Chlorine Garden1200  9     GF02   10800 
    May Road  800   12   GF03   9600 
    Beech Hill  900   8    BG06   7200 
    Ash Avenue  1000  12   AA04   12000 
    TOTAL             *total* 

:이처럼 1222 - 사용 된 SELECT 문은 내가이 쿼리를 얻을 어떻게 열

SELECT DISTINCT apartment.addressLine1, lease.monthlyRent, lease.duration, lease.roomNumber, lease.monthlyRent*lease.duration AS totalLeaseRent 
FROM `lease` 
INNER JOIN apartment on (lease.roomNumber) = (apartment.roomNumber) 
left Join tenantLease on tenantLease.leaseID = lease.leaseID 
WHERE tenantLease.live = 1 AND lease.duration <= 12 

UNION ALL 
SELECT 'Total', SUM(lease.monthlyRent * lease.duration) 
FROM lease 

를 다른 번호가 운영? 감사

답변

0

TRY 본 : UNION의 각 SELECT 문은 동일한 수의 열이 있어야합니다

1 세트 작업과 작업하는 동안 우리는 세 가지 포인트를 다음 수행 할 필요가

2 열해야 또한 각 SELECT 문에서

3 열은 또한 같은 순서로해야 유사한 데이터 유형이

SELECT DISTINCT apartment.addressLine1, 
    lease.monthlyRent, 
    lease.duration, 
    lease.roomNumber, 
    lease.monthlyRent*lease.duration AS totalLeaseRent 
FROM `lease` 
INNER JOIN apartment on (lease.roomNumber) = (apartment.roomNumber) 
left Join tenantLease on tenantLease.leaseID = lease.leaseID 
WHERE tenantLease.live = 1 AND lease.duration <= 12 
UNION ALL 
SELECT 'Total', NULL, NULL, NULL, SUM(lease.monthlyRent * lease.duration) 
FROM lease 
+0

이것은 작동합니다! 고마워요, 이걸 해결하려고 너무 많은 시간을 보냈습니다! –