2016-07-15 38 views
0

雖然合併查詢是差異數量,同時結合querys和個人查詢

SELECT 
    stdt.`DIST_VC_DNE`, 
    COUNT(Farmer_ID) AS Farmer_Cnt, 
    SUM(
     CASE 
      WHEN STATUS = 'Analysed' THEN 1 
      ELSE 0 
     END 
    ) AS Analysed_Cnt 
FROM 
    `tt_mao_soil_sample_dtls` tms 
    INNER JOIN tt_mao_soil_farmer_dtls FAR ON FAR.`Soil_Sample_ID` = tms.`Soil_Sample_ID` 
    INNER JOIN `st_com_dist` STDT ON STDT.DIST_VC_DC = tms.District_ID 
WHERE 
    Far.print_status IS NULL 
    AND Is_active = 'Y' 
    AND stl_user_id = 2222 
    AND Unique_ID LIKE '2016-17%' 
GROUP BY 
    District_ID; 

和ResultSet是

DIST_VC_DNE | Farmer_Cnt | Analysed_Cnt 
---------------------------------------- 
AP    24340   20177 
TS    4    0 

在寫indivudual查詢 -

SELECT DIST_VC_DNE,COUNT(*) AS Analysed_Cnt 
FROM tt_mao_soil_sample_dtls 
WHERE `district_id`=10 AND Is_active='Y' AND stl_user_id=2222 
AND Unique_ID LIKE '2016-17%'; 

和ResultSet是

DIST_VC_DNE | Analysed_Cnt 
--------------------------- 
AP    13065  <===This is the correct result 
+0

請幫幫我。 –

+0

在Join查詢中,您還在比較Soil_Sample_ID,那是怎麼回事?.....你能更新SQLFiddle還是示例表格數據和你的需求... –

+0

在第二個查詢中,還有一個條件'district_id = 10'。 – Blank

回答

0

請在第一個查詢中檢查您的連接。這就是它返回錯誤計數值的原因。當你在第二個查詢中沒有連接時,你可以得到正確的計數值。

我對數據不熟悉,所以無法進一步提供幫助。