2011-01-24 6 views
4

두 개의 테이블을 가지고 있는데 테이블 A와 테이블 B를 말할 수 있습니다. 테이블 b는 테이블 a에 많은 행을 가지고 테이블 b는 가격을 포함합니다 (사실상 쇼핑 바구니). 그래서 제가 원하는 것은 테이블 a의 모든 레코드와 테이블 b의 가격 합입니다. 내가 원하는대로 내가 모든 ach_sell의 총합과 끝,하지 않습니다 분명하지만이 왼쪽 조인 합계 SQL

select a.*, sum(b.ach_sell) from bookings a 
left join pricing_line b on b.bookings = a.id 

을 시도했다 (그래서 하나 개의 레코드가 반환됩니다). 누군가 나를 친절하게 도와 줄 해결책을 제안하겠습니까? 지금은 프로그래밍 방식으로하고 있으며 SQL로 처리 할 수 ​​있다고 확신하고 있습니까?

+0

가 노동 조합을하는 것이 실용적이다? –

답변

10

귀하의 방향이 맞다, 그냥 이런 식으로 뭔가를 a.id 년대를 분리 조항에 의해 그룹을 추가 선택 항목에 많은 열이 있습니다. 이처럼

:

SELECT 
    co.checkOutOrderID, 
    com.companyCode, 
    sd.serviceDispatchCode, 
    cu.customerName, 
    com.companySimp, 
    ISNULL(SUM (sdlp.partsModelPrice * sdlp.partsModelNum), 0) AS total 
FROM 
    checkoutorder co 
LEFT JOIN 
    servicedispatchorder sd ON sd.serviceDispatchID = co.serviceDispatchID 
LEFT JOIN 
    customer cu ON cu.customerID = co.customerID 
LEFT JOIN 
    company com ON com.companyID = co.companyID 
LEFT JOIN 
    servicedispatchlinkparts sdlp ON sdlp.serviceDispatchID = sd.serviceDispatchID 
GROUP BY 
    sd.serviceDispatchID, co.checkOutOrderID, 
    com.companyCode, sd.serviceDispatchCode, 
    cu.customerName, com.companySimp 
+0

완벽한 감사합니다! – Zoborg

0

하나의 결과 만 원하지 않으면 GROUP BY 뭔가가 필요합니다. 혹시?

select a.*, 
     sum(b.ach_sell) as ach_sell 
from bookings a 
left join pricing_line b on b.bookings = a.id 
GROUP BY a.id 

다른 RDBMS에 당신이 GROUP BY에서 전체 열 목록을 가지고 주장하는 것이지만, MySQL은하지 않습니다.

0
select a.*, sum(b.ach_sell) as sum_column 
from bookings a 
    left join pricing_line b 
     on b.bookings = a.id 
group by a.id 

당신이 집계 함수를 적용하지 않는있는 분야의 다른 세트 (tipically 아이디)에 의해 그룹에 필요하면 집계 (SUM, COUNT, MIN, MAX, AVG)의 함수들이 그냥 사용할 때마다 . 예약 테이블의 필드에

2

그룹 : 경우

select a.id, sum(b.ach_sell) 
from bookings a 
    left join pricing_line b 
on b.bookings = a.id 
group by a.id 
+0

간편한 주소 지정을 위해 "sum (b.ach_sell) as summed_column"을 추가합니다. – MeanEYE

0

:

select a.this, a.that, sum(b.ach_sell) 
from bookings a 
left join pricing_line b on b.bookings = a.id 
group by a.this, a.that