Sql 如何根据特定字段的条件按字段分组?

Sql 如何根据特定字段的条件按字段分组?,sql,ms-access,Sql,Ms Access,我的表具有以下值: SommaDiImporto | codice_ordine_data 828,13 | 003644260517,003573190517,003740260517,003693230517 804,73 | 003644260517,003573190517,003740260517,003693230517 357,86 | 003644260517,003573190517,003740260517,0036932305

我的表具有以下值:

SommaDiImporto | codice_ordine_data
828,13         | 003644260517,003573190517,003740260517,003693230517
804,73         | 003644260517,003573190517,003740260517,003693230517
357,86         | 003644260517,003573190517,003740260517,003693230517
1727,82        | 003644260517,003573190517,003740260517,003693230517
200,69         | 003644260520,003573190520,003740260520,003693230520
0              | 003644260520,003573190520,003740260520,003693230520
600,58         | 003644260520,003573190520,003740260520,003693230520
123,47         | 003644260520,003573190520,003740260520,003693230520
第二个字段的前四行具有相同的值,后四行也具有相同的值。 我意识到的查询应返回以下记录:

SommaDiImporto | codice_ordine_data
3718,54        | 003644260517,003573190517,003740260517,003693230517
924,74         | 003644260520,003573190520,003740260520,003693230520
这就是我所期望的:

SommaDiImporto | codice_ordine_data
3718,54        | 003644260517,003573190517,003740260517,003693230517
0              | 003644260520,003573190520,003740260520,003693230520
最后一行的第一个字段应返回0,因为在该分组列表中至少有一条记录设置为0

这是我意识到的问题:

SELECT SUM(IIF(TIMBRATURE.importo = 0, 0, TIMBRATURE.importo)) AS SommaDiImporto, TIMBRATURE.codice_ordine_data
FROM TIMBRATURE
GROUP BY TIMBRATURE.codice_ordine_data;
如何修改查询以返回所需结果


非常感谢

对于不带NULL的值:

SELECT IIF(MIN(TIMBRATURE.importo) = 0, 0, SUM(TIMBRATURE.importo)) AS SommaDiImporto, TIMBRATURE.codice_ordine_data
FROM TIMBRATURE
GROUP BY TIMBRATURE.codice_ordine_data;
对于空值:

SELECT IIF(MIN(ISNULL(TIMBRATURE.importo, 0)) = 0, 0, SUM(TIMBRATURE.importo)) AS SommaDiImporto, TIMBRATURE.codice_ordine_data
FROM TIMBRATURE
GROUP BY TIMBRATURE.codice_ordine_data;
试试看这是否管用


注意:函数ISNULL取决于数据库。这可能有助于找到应该使用的确切函数。

有一点语法错误。必须是I而不是If。非常感谢!!编辑!谢谢抱歉-在MySQL数据库上尝试了查询,因此如果!!我还需要将字段importo的每个值设置为空,将sommadimporto设置为0。我这样编辑查询:选择IIFMintimature.importo=0或MINTIMBRATURE.importo为Null,0,SUMTIMBRATURE.importo为sommadimporto,TIMBRATURE.codice\u ordine\u按TIMBRATURE.codice\u ordine\u数据从TIMBRATURE组中选择TIMBRATURE.codice\u ordine\u数据;但仍然不起作用。我哪里错了?@FrancescoEsposto-我已经编辑了答案来处理空值。请试一试!另外,如果你能告诉我你在使用哪个数据库,我可以给你确切的查询结果。