From 9f00e64b05a62fce189fcb7ff2f8a360f9dbc960 Mon Sep 17 00:00:00 2001 From: vivien galuchot Date: Tue, 6 Apr 2021 15:15:04 +0200 Subject: [PATCH] fix COUNT issue with subqueries --- sql_server/pyodbc/compiler.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/sql_server/pyodbc/compiler.py b/sql_server/pyodbc/compiler.py index 86fecb3e..b1af9536 100644 --- a/sql_server/pyodbc/compiler.py +++ b/sql_server/pyodbc/compiler.py @@ -277,15 +277,16 @@ def as_sql(self, with_limits=True, with_col_aliases=False): result.append('WHERE %s' % where) params.extend(w_params) - grouping = [] - for g_sql, g_params in group_by: - grouping.append(g_sql) - params.extend(g_params) - if grouping: - if distinct_fields: - raise NotImplementedError('annotate() + distinct(fields) is not implemented.') - order_by = order_by or self.connection.ops.force_no_ordering() - result.append('GROUP BY %s' % ', '.join(grouping)) + if not self.query.subquery: + grouping = [] + for g_sql, g_params in group_by: + grouping.append(g_sql) + params.extend(g_params) + if grouping: + if distinct_fields: + raise NotImplementedError('annotate() + distinct(fields) is not implemented.') + order_by = order_by or self.connection.ops.force_no_ordering() + result.append('GROUP BY %s' % ', '.join(grouping)) if having: result.append('HAVING %s' % having)