diff --git a/backend/services/analyticsService.js b/backend/services/analyticsService.js index c13ccc6..664a42b 100644 --- a/backend/services/analyticsService.js +++ b/backend/services/analyticsService.js @@ -701,14 +701,18 @@ const getClientFilterOptions = async () => { ORDER BY value ASC; `), pool.query(` - SELECT - NULLIF(TRIM(id_vendedor), '') as id, - NULLIF(TRIM(nome_vendedor), '') as name - FROM orders - WHERE ( - NULLIF(TRIM(id_vendedor), '') IS NOT NULL - OR NULLIF(TRIM(nome_vendedor), '') IS NOT NULL - ) + WITH seller_options AS ( + SELECT + NULLIF(TRIM(id_vendedor), '') as id, + NULLIF(TRIM(nome_vendedor), '') as name + FROM orders + WHERE ( + NULLIF(TRIM(id_vendedor), '') IS NOT NULL + OR NULLIF(TRIM(nome_vendedor), '') IS NOT NULL + ) + ) + SELECT id, name + FROM seller_options GROUP BY id, name ORDER BY COALESCE(name, id) ASC, id ASC; `) diff --git a/backend/test/analyticsService.test.js b/backend/test/analyticsService.test.js index 40a1760..998cb18 100644 --- a/backend/test/analyticsService.test.js +++ b/backend/test/analyticsService.test.js @@ -656,6 +656,7 @@ test('getClientFilterOptions returns all distinct order metadata options', async assert.doesNotMatch(call.sql, /data_pedido_date <=/); }); assert.match(calls[0].sql, /WHERE NULLIF\(TRIM\(marketplace\), ''\) IS NOT NULL/); + assert.match(calls[2].sql, /WITH seller_options AS/); assert.match(calls[2].sql, /NULLIF\(TRIM\(nome_vendedor\), ''\) IS NOT NULL/); assert.deepEqual(options.marketplaces, ['Mercado Livre', 'Shopee']); assert.deepEqual(options.salesChannels, ['Online']);