2011-04-02 8 views
2

これは私が完全にNULLを含む結果を排除し、私の結果としてのみ、これを取得したいと思いMySQL - どのように結果をNULL値で排除するのですか? (コード付き)

aasd 74 
qweqwe 20 
tyutyu NULL 
bnmbnm NULL 
234234 NULL 

この結果を出力する私のSQLコード

SELECT p.plant_name, 
     sum(data.value_1) totalvalue_1 
    FROM (SELECT DISTINCT date_format(date, '%Y-%m') ym 
      FROM data 
     WHERE data.id_fk = 1 
      AND date BETWEEN '2011-01-01' AND '2011-04-01') dates 
CROSS JOIN (SELECT DISTINCT data.id_fk, 
        data.plant_id_fk 
       FROM data 
      WHERE data.id_fk = 1) up 
     JOIN plants p ON p.plant_id = up.plant_id_fk 
LEFT JOIN data ON date_format(data.date, '%Y-%m') = dates.ym 
       AND up.id_fk = data.id_fk 
       AND up.plant_id_fk = data.plant_id_fk 
       AND category_1 = 'expenses' 
    GROUP BY up.plant_id_fk 
    ORDER BY up.id_fk, up.plant_id_fk 

です:

aasd  74 
qweqwe 20 

私はいくつかの節でis not nullを使ってみましたが、私は必要な結果を得ていませんでした。

提案がありますか?あなたのGROUP BYORDER BYHAVING句を追加

答えて

7

試してみてください。

group by up.plant_id_fk 
HAVING SUM(data.value_1) > 0 
+0

正しいものはここにあります! – Kangkan

+0

すごい - 一房ありがとう – pepe

+0

@torr - ねえ、私の喜び!ありがとう! –

関連する問題