2012-09-04 1 views
0

나는 모든 기간 및 당월 지불 금액을 받아야합니다. 카테고리와 트랜잭션이라는 두 개의 테이블이 있습니다.어디에 합류하는 동안 선택하십시오

거래 :

id int(11)       
category varchar(32)       
dttm_added datetime      
minus float    
minus_currency varchar(32) 

카테고리 : 나는 때문에 모든 minus_month의 합계 후, 가입하기 전에 선택에서 절을 확인해야

select `key`, `id`, `name`, minus_month,month_cur 
           from `categories` as ct 

           left join (
           select `category` as tr_ct_m, date_format(`dttm_trans`, '%Y%m') as dat, sum(`minus`) as minus_month, `minus_currency` as month_cur from `transactions` where dat = date_format(now(), '%Y%m') 
           ) as tr_m on tr_m.tr_ct_m = ct.key 
           where `type` = '-' 

: 여기

id int(11)     
key varchar(32)       
name varchar(50)       
type varchar(1) 

내 쿼리입니다 날짜가 Null로 바뀌고 있습니다. 도움말 PLZ

+3

테이블의 스키마를 제공합니다. – Ruwantha

답변

0

하지 내가 제대로 이해하면, 아래에보십시오 확인 :

select `ct`.`key`, `ct`.`id`, `ct`.`name`, tr_m.minus_month,tr_m.month_cur from 
(select * from `categories` where `type` = '-') as ct 
left join 
(select `category` as tr_ct_m, date_format(`dttm_trans`, '%Y%m') as dat, 
    sum(`minus`) as minus_month, `minus_currency` as month_cur from `transactions` 
    where dat = date_format(now(), '%Y%m') 
) as tr_m on tr_m.tr_ct_m = ct.key 
+0

예, 제 영어가 안 좋으므로 제 문제를 다시 설명하겠습니다. Where 절은 '내부 결합'에서 사용할 수 없습니다. 모든 조건은 선택 후, 내가 선택하기 전에 조건을 만들 필요가있을 때만 사용할 수 있습니다. – user1645633

관련 문제