2017-03-03 3 views
0

したがって、両方の年に請求書が存在する顧客あたりの合計請求書を検討しています。だから私は両方の年に請求書が存在する場合は、合計で合計を取得します

SELECT  Sum((tbl_invoice_details.quantity 
       - ifnull(tbl_invoice_details.quantity_returned, 0) 
       ) * tbl_invoice_details.price) AS dollarsSold, 
      tbl_customers.NAME, 
      cust_ID AS customer_id, 
      YEAR (tbl_invoice.invoice_date) AS invoiceYear 
FROM  `tbl_invoice_details` 
INNER JOIN `tbl_invoice` 
ON   `tbl_invoice_details`.`invoice_ID` = `tbl_invoice`.`invoice_ID` 
INNER JOIN `tbl_customers` 
ON   `tbl_customers`.`customer_ID` = `tbl_invoice`.`cust_ID` 
WHERE  MONTH (`invoice_date`) = '2' 
AND  (YEAR (`invoice_date`) = '2017' 
      OR 
      YEAR (`invoice_date`) = '2016') 
AND EXISTS (SELECT * 
      FROM tbl_invoice 
      WHERE cust_ID = customer_id 
      AND MONTH (`invoice_date`) = '2' 
      AND YEAR (`invoice_date`) = '2016') 
GROUP BY MONTH (tbl_invoice.invoice_date), 
      invoiceYear, 
      `tbl_customers`.`name`, 
      customer_id 
ORDER BY name 

は、どのように私は2016年と2017年の両方の2月中に請求書を持っている顧客にそれを制限しないしている私はEXISTSでそれを試みたが、それは途中までしか成功しています。

答えて

1

両方の請求書が存在することを確認するための最良の方法、使用しているが、二回2017年

SELECT  Sum((tbl_invoice_details.quantity 
       - ifnull(tbl_invoice_details.quantity_returned, 0) 
       ) * tbl_invoice_details.price) AS dollarsSold, 
      tbl_customers.NAME, 
      cust_ID AS customer_id, 
      YEAR (tbl_invoice.invoice_date) AS invoiceYear 
FROM  `tbl_invoice_details` 
INNER JOIN `tbl_invoice` 
ON   `tbl_invoice_details`.`invoice_ID` = `tbl_invoice`.`invoice_ID` 
INNER JOIN `tbl_customers` 
ON   `tbl_customers`.`customer_ID` = `tbl_invoice`.`cust_ID` 
WHERE  MONTH (`invoice_date`) = '2' 
AND  YEAR (`invoice_date`) IN ('2016', '2017') 
AND EXISTS (SELECT 1 
      FROM tbl_invoice 
      WHERE cust_ID = customer_id 
      AND MONTH (`invoice_date`) = '2' 
      AND YEAR (`invoice_date`) = '2016') 
AND EXISTS (SELECT 1 
      FROM tbl_invoice 
      WHERE cust_ID = customer_id 
      AND MONTH (`invoice_date`) = '2' 
      AND YEAR (`invoice_date`) = '2017') 
GROUP BY MONTH (tbl_invoice.invoice_date), 
      invoiceYear, 
      `tbl_customers`.`name`, 
      customer_id 
ORDER BY name; 
のための2016用とその他のEXISTS
関連する問題