2014-03-24 28 views
0

我必須計數1列由兩個條件導致2列,按另一列分組。我會告訴你:如何計算一列,有一個條件,其中一個元素爲空,另一列的元素不爲空?一切由另一個元素分組

SELECT cy.Name, COUNT(noa.GZ_Aparat_ID), COUNT(noa.GZ_Aparat_ID) 
    FROM GZ_Nominalizare_Aparat noa 
    INNER JOIN GZ_Nominalizare no ON (no.GZ_NOMINALIZARE_ID = noa.GZ_NOMINALIZARE_ID) 
    INNER JOIN GZ_AcordAcces aa ON (aa.GZ_ACORDACCES_ID = no.GZ_ACORDACCES_ID) 
    INNER JOIN GZ_Abonament ab ON (ab.GZ_ABONAMENT_ID = aa.GZ_ABONAMENT_ID) 
    INNER JOIN GZ_PunctConsum pc ON (pc.GZ_ABONAMENT_ID = ab.GZ_ABONAMENT_ID) 
    INNER JOIN GZ_IU iu ON (iu.GZ_PUNCTCONSUM_ID = pc.GZ_PUNCTCONSUM_ID) 
    LEFT OUTER JOIN C_BPartner_Location bplo ON (ab.C_BPartner_Location_ID = bplo.C_BPARTNER_LOCATION_ID) 
    LEFT OUTER JOIN C_Location lo ON (bplo.C_Location_ID = lo.C_Location_ID) 
    LEFT OUTER JOIN C_City cy ON (lo.C_City_ID = cy.C_City_ID) 
GROUP BY cy.Name 

Firt COUNT必須包含noa.GZ_Aparat_ID的計數,其中iu.GZ_DataPIF IS NOT NULL

+0

第一個'WHERE'是否需要'SELECT'?告訴我它的錯字? – KrazzyNefarious

+0

您使用的是什麼RDBMS?如果您的平臺有本地特性,可能會有所幫助。 – Andrew

+0

mate ....你的問題很不清楚,缺乏細節...只顯示SQL無法幫助...請使用一些*純英文*太或您的問題可能會關閉..... :) – NoobEditor

回答

0

不知道從哪裏iu.GZ_DataPIF IS NULL 和第二COUNT如果我的語法對於oracle來說是相當正確的,但它不是太不相似。

SELECT cy.Name, 
     SUM(CASE WHEN noa.GZ_Aparat_ID is NULL THEN 0 
        WHEN noa.GZ_Aparat_IDis NOT NULL THEN 1 
        END) as COUNTNONNULL, 
     SUM(CASE WHEN noa.GZ_Aparat_ID is NULL THEN 1 
        WHEN noa.GZ_Aparat_ID is NOT NULL THEN 0 
        END) as COUNTNULL 
    FROM GZ_Nominalizare_Aparat noa 
    INNER JOIN GZ_Nominalizare no ON (no.GZ_NOMINALIZARE_ID = noa.GZ_NOMINALIZARE_ID) 
    INNER JOIN GZ_AcordAcces aa ON (aa.GZ_ACORDACCES_ID = no.GZ_ACORDACCES_ID) 
    INNER JOIN GZ_Abonament ab ON (ab.GZ_ABONAMENT_ID = aa.GZ_ABONAMENT_ID) 
    INNER JOIN GZ_PunctConsum pc ON (pc.GZ_ABONAMENT_ID = ab.GZ_ABONAMENT_ID) 
    INNER JOIN GZ_IU iu ON (iu.GZ_PUNCTCONSUM_ID = pc.GZ_PUNCTCONSUM_ID) 
    LEFT OUTER JOIN C_BPartner_Location bplo ON (ab.C_BPartner_Location_ID = bplo.C_BPARTNER_LOCATION_ID) 
    LEFT OUTER JOIN C_Location lo ON (bplo.C_Location_ID = lo.C_Location_ID) 
    LEFT OUTER JOIN C_City cy ON (lo.C_City_ID = cy.C_City_ID) 
GROUP BY cy.Name 
+0

工作很好,只需在sum中將ia.GZ_DataPIF更改爲noa.GZ_Aparat_ID – Andrew

相關問題