2016-06-01 14 views
0

ここはMySQLでのクエリです。フィールドがサブクエリbID_TRANSAKSIJUALという名前の列を返さない#1054 - 'フィールドリスト'の 'b.ID_TRANSAKSIJUAL'が不明な列

SELECT `a`.`NAMA_BULAN` AS `Bulan`, 
    CASE WHEN `b`.`ID_TRANSAKSIJUAL` IS NULL 
    THEN 0 
    ELSE `b`.`ID_TRANSAKSIJUAL` 
    END AS `Total_Pendapatan` 
    FROM `tbl_bulan` AS `a` 
     LEFT JOIN (
     SELECT MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`) AS `TGL_TRANSAKSI` , COUNT(`tbl_transaksi_jual`.`ID_TRANSAKSIJUAL`) AS `TOTAL_STLH_DISC` 
     FROM `tbl_transaksi_jual` 
     WHERE `tbl_transaksi_jual`.`ID_CABANG`=1 AND 
      YEAR(`tbl_transaksi_jual`.`TGL_TRANSAKSI`)= 2016 
     GROUP BY MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`) 
     ) AS `b` ON `a`.ID_BULAN = `b`.`TGL_TRANSAKSI` 
    ORDER BY `a`.ID_BULAN ASC 
+0

B' '2つの列がありますTGL_TRANSAKSIとTOTAL_STLH_DISC – Strawberry

答えて

1

不明である理由を私は知りません。この列のカウントをTOTAL_STLH_DISCに戻すので、メインのクエリでそれをテストする必要があります。

式の代わりにIFNULLまたはCOALESCEを使用することもできます。

SELECT `a`.`NAMA_BULAN` AS `Bulan`, 
     IFNULL(b.TOTAL_STLH_DISC, 0) AS Total_Pendapatan 
FROM `tbl_bulan` AS `a` 
LEFT JOIN (
    SELECT MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`) AS `TGL_TRANSAKSI`, 
      COUNT(`tbl_transaksi_jual`.`ID_TRANSAKSIJUAL`) AS `TOTAL_STLH_DISC` 
    FROM `tbl_transaksi_jual` 
    WHERE `tbl_transaksi_jual`.`ID_CABANG`=1 AND 
     YEAR(`tbl_transaksi_jual`.`TGL_TRANSAKSI`)= 2016 
    GROUP BY MONTH(`tbl_transaksi_jual`.`TGL_TRANSAKSI`) 
    ) AS `b` ON `a`.ID_BULAN = `b`.`TGL_TRANSAKSI` 
ORDER BY `a`.ID_BULAN ASC 
+0

ははい、私は私のせいに知られています。 @ Barmarの前にありがとう –

+0

それが役に立つと答えた場合は受け入れてください。 – Barmar

関連する問題