0

すべての期間と当月の支払い合計を取得する必要があります。カテゴリとトランザクションの 2 つのテーブルがあります。

取引:

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

カテゴリ:

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

これが私のクエリです:

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` = '-'

参加する前に select の句を確認する必要があります。minus_month の合計の後、すべての日付が Null になるためです。助けてください

4

1 に答える 1

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 
于 2012-09-04T09:29:16.313 に答える