簡體   English   中英

SQL - 只顯示大於 0 的值

[英]SQL - with only showing a value greater than 0

我對 SQL 相當陌生。 我寫出了我的代碼,我在其中顯示了供應商名稱和他們所有發票的應付總額。 我的問題是,我只需要顯示總額超過 0.00 美元的供應商。 任何見解將不勝感激。

SELECT DISTINCT VENDOR_NAME, TO_CHAR(SUM(INVOICE_TOTAL-PAYMENT_TOTAL-CREDIT_TOTAL),                                                            '$999,999.99') AS AMTDUE
FROM AP.VENDORS, AP.INVOICES
WHERE AP.VENDORS.VENDOR_ID = AP.INVOICES.VENDOR_ID
GROUP BY VENDOR_NAME;

代碼顯示:

在此處輸入圖片說明

使用having子句:

SELECT VENDOR_NAME,
       TO_CHAR(SUM(INVOICE_TOTAL-PAYMENT_TOTAL-CREDIT_TOTAL),                                                            '$999,999.99') AS AMTDUE
FROM AP.VENDORS V JOIN
     AP.INVOICES I
     ON V.VENDOR_ID = I.VENDOR_ID
GROUP BY VENDOR_NAME
HAVING SUM(INVOICE_TOTAL - PAYMENT_TOTAL-CREDIT_TOTAL) > 0;

筆記:

  • 切勿FROM子句中使用逗號。
  • 始終使用正確、明確、標准、可讀的JOIN語法。
  • 使用表別名。
  • 限定所有列名。 我不知道它們來自哪里,但我想大多數應該在I. .

HAVING 子句通常與 GROUP BY 子句一起使用,以根據指定的條件列表過濾組

SELECT DISTINCT VENDOR_NAME, TO_CHAR(SUM(INVOICE_TOTAL-PAYMENT_TOTAL-CREDIT_TOTAL),                                                            '$999,999.99') AS AMTDUE
FROM AP.VENDORS, AP.INVOICES
WHERE AP.VENDORS.VENDOR_ID = AP.INVOICES.VENDOR_ID
GROUP BY VENDOR_NAME
HAVING SUM(INVOICE_TOTAL - PAYMENT_TOTAL-CREDIT_TOTAL) > 0;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM