组合查询和单个查询时计数的差异

时间:2016-07-15 08:52:07

标签: mysql

虽然合并查询是

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromYDelta="100%"
        android:toYDelta="0%"
        android:fillAfter="true"
        android:duration="500"/>
</set>

结果集

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;

在撰写单独的查询时 -

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

结果集

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%';

1 个答案:

答案 0 :(得分:0)

请在第一个查询中检查您的联接。这是它返回错误计数值的原因。当您在第二个查询中没有连接时,您将获得正确的计数值。

我不熟悉数据,因此无法提供进一步的帮助。