--- tags: Querys, Preço comparativo --- # Querys para extração de infos sobre preço comparativo. ### Total de produtos de peso variável ```sql= SELECT prods.SKU, prods.NAME, av.int_value AS weightIndex FROM ( SELECT DISTINCT p.id, p.SKU, p.NAME FROM product p INNER JOIN product_cache pc ON p.id = pc.product_id AND pc.status = 1 ) prods INNER JOIN attribute_value av ON av.product_id = prods.id WHERE av.store_id IS NULL AND av.attribute_code = 'weightIndex'; ```` ### Total de produtos ```sql= SELECT COUNT(*) FROM ( SELECT DISTINCT p.id FROM product p INNER JOIN product_cache pc ON p.id = pc.product_id AND pc.status = 1 ) prods ```` ### Extração ```sql= SELECT main.sku, main.nome, main.loja, main.preco, main.indice_peso, main.preco_comparativo, sub.cod_conversao_individual FROM ( SELECT p.ID, p.sku, p.NAME AS nome, s.NAME AS loja, MAX(CASE WHEN av.ATTRIBUTE_CODE = 'price' THEN av.DOUBLE_VALUE END) AS preco, MAX(CASE WHEN av.ATTRIBUTE_CODE = 'weightIndex' THEN av.int_value END) AS indice_peso, MAX(CASE WHEN av.ATTRIBUTE_CODE = 'comparativePrice' THEN av.STRING_VALUE END) AS preco_comparativo FROM STORE s LEFT JOIN ATTRIBUTE_VALUE av ON av.STORE_ID = s.ID LEFT JOIN PRODUCT p ON av.PRODUCT_ID = p.ID WHERE av.ATTRIBUTE_CODE IN ('price', 'weightIndex', 'comparativePrice') AND av.END_DATE IS NULL GROUP BY p.ID, s.NAME, p.SKU, p.NAME ) main LEFT JOIN ( SELECT av.PRODUCT_ID, LISTAGG(av.TEXT_VALUE, ', ') WITHIN GROUP (ORDER BY av.TEXT_VALUE) AS cod_conversao_individual FROM ATTRIBUTE_VALUE av WHERE av.ATTRIBUTE_CODE = 'codigoConversaoUnidade' GROUP BY av.PRODUCT_ID ) sub ON main.id = sub.PRODUCT_ID ORDER BY main.preco_comparativo; ```