Jump to content

tamabenetti

Members
  • Content count

    12
  • Joined

  • Last visited

Community Reputation

0 Comum

About tamabenetti

  1. tamabenetti

    Campo calculado com critérios/condições

    +- ISSO?? select if(OPERACAO=1,VENDA_VALOR * QTDE,0) - IF(OPERACAO=1 and NF_CANBCELADA="S",VENDA_VALOR*QTDE,0) FROM FATO_VENDAS **COMO COLOCAR MAIS DE UMA CONDIÇÃO??
  2. tamabenetti

    Campo calculado com critérios/condições

    kkkkk eu imagino. Obrigada!!!!!!!!!
  3. tamabenetti

    Campo calculado com critérios/condições

    Boa tarde! Preciso montar o seguinte exemplo de calculo via query. Eu não sei como criar condições dentro do cálculo, queria ter uma base de como montar isso. Na tabela de VENDAS eu possuo todos os campos necessários para esse cálculo. ( Essa expressão calcula a venda líquida, então considera operações de venda e devoluções, além das NFs canceladas também.) =(((SUM(IF(OPERACAO=1,[QUANTIDADE]*[VLR_UNITARIO])))-(SUM(IF(OPERACAO=1 AND NF_CANCELADA='S',[QUANTIDADE]*[VLR_UNITARIO]))))-((SUM(IF(OPERACAO=1,[VLR_DESCONTO])))-(SUM(IF(OPERACAO=1 AND NF_CANCELADA='S',[VLR_DESCONTO]))))+((SUM(IF(OPERACAO=1,[VLR_ICMS_ST])))-(SUM(IF(OPERACAO=1 AND NF_CANCELADA='S',[VLR_ICMS_ST])))))-(((SUM(IF(OPERACAO=6,[QUANTIDADE]*[VLR_UNITARIO])))-(SUM(IF(OPERACAO=6 AND NF_CANCELADA='S',[QUANTIDADE]*[VLR_UNITARIO]))))-((SUM(IF(OPERACAO=6,[VLR_DESCONTO])))-(SUM(IF(OPERACAO=6 AND NF_CANCELADA='S',[VLR_DESCONTO]))))+((SUM(IF(OPERACAO=6,[VLR_ICMS_ST])))-(SUM(IF(OPERACAO=6 AND NF_CANCELADA='S',[VLR_ICMS_ST])))))
  4. tamabenetti

    Agrupamento por categoria e subcategoria

    Pessoal, muito obrigada pelo retorno. Eu tive resposta em outro forúm com a seguinte sugestão e deu certo. SELECT distinct vendedor, count(distinct cliente), count(distinct CONCAT(cliente,produto)) FROM FATO_VENDAS a GROUP BY vendedor
  5. tamabenetti

    Agrupamento por categoria e subcategoria

    AJUDAAAA Pessoal eu preciso da quantidade total de itens diferentes vendidos por cliente para cada vendedor. Eu tenho o seguinte: Vendedor | CLIENTE | PRODUTO | data_VENDA JOAO | MERCADO SORRISO | PRESUNTO | 01/07/2019 JOAO | PADARIA SONHO | PRESUNTO | 03/07/2019 JOAO | SUPERCENTER | PRESUNTO | 05/07/2019 JOAO | SUPERCENTER | PRESUNTO | 10/07/2019 LUIZ | CONFEITARIA A | AÇUCAR | 15/07/2019 PRECISO DESSE RESULTADO: Vendedor | Total clientes vendidos | total produtos diferentes vendidos POR CLIENTE JOAO | 3 | 3 * LUIZ | 1 | 1 *O total é 3 porque eu preciso considerar a venda do produto por cliente, e não somente por vendedor. Quando eu utilizo o group by ele considera apenas o total de produtos vendidos por VENDEDOR, e não considera a venda para clientes diferentes. SELECT distinct vendedor, count(distinct cliente), count(distinct produto) FROM FATO_VENDAS a GROUP BY vendedor Por favor me ajudem!!!
  6. tamabenetti

    JOIN com critério de DATA

    Obrigada!!!
  7. tamabenetti

    JOIN com critério de DATA

    Vou tentar inverter a ordem!! Minhas tabelas não tem chave estrangeira, devo criar??
  8. tamabenetti

    JOIN com critério de DATA

    Tentei da forma abaixo também, mas demora muito pra rodar e se o periodo é grande, trava. Mas com esse código eu consegui trazer mais registros, aqueles que tinham sido ignorados no código anterior. (Alguma dica pra otimizar a consulta??) SELECT STRAIGHT_JOIN a.id AS ID_SAIDA,DATA_SAIDA,A.NOTA,A.CNPJ AS CNPJ, A.NOME_CLIENTE, A.REFERENPRODUTO,A.PRODUTO,A.NCM,A.CFOP,D.UNID,A.QTDE,D.EMB_QTDE,A.VLR_UNITARIO,A.VLR_TOTAL, C.ENTRADA_ID AS ID_ENT, C.ns1_dhEmi AS DATA_ENT, ns1_nNF AS NF_ENT,ns1_CNPJ AS CNPJ, ns1_xNome AS FORNECEDOR,ns1_cProd AS COD,ns1_xProd AS PRODUTO,ns1_NCM AS NCM,ns1_CFOP AS CFOP, round(replace(ns1_qCom,',','.'),5) AS QTDE,E.EMB_QTDE,ns1_vUnCom AS VL_UNI, ns1_vProd AS VL_TOTAL,ns1_vDesc AS DES,C.ns1_vBC AS VBC,ns1_vICMS AS ICMS,ns1_pICMS/100 AS INTER,ns1_vIPI,ns1_vFrete,ns1_vOutro,ns1_vSeg, MVA/100 AS MVA, ALIQ_INTRA/100 AS INTRA,round(RED_BC/100,5) as REB_BC,round(ALIQ_INTRA/100*(1-RED_BC/100),5) as ALIQ_INTRA_Red, ROUND(CASE WHEN C.ns1_qCom=0 THEN 0 ELSE CASE WHEN (c.ns1_pICMS)>e.ALIQ_INTRA*(1-e.RED_BC) THEN ((C.ns1_vBC+C.ns1_vIPI)*(0.7*e.MVA/100)*(e.ALIQ_INTRA/100*(1-e.RED_BC/100))/(C.ns1_qCom*e.EMB_QTDE))*A.QTDE*d.EMB_QTDE ELSE (((C.ns1_vBC+C.ns1_vIPI)*(0.7*e.MVA/100)*((1-c.ns1_pICMS/100)/(1-e.ALIQ_INTRA/100*(1-e.RED_BC/100)))*(e.ALIQ_INTRA/100*(1-e.RED_BC/100))/(C.ns1_qCom*e.EMB_QTDE))*A.QTDE*d.EMB_QTDE) END END,2) as CALCULO FROM TB_SAIDAS AS a left JOIN TB_CADASTROATIVO AS B ON a.CNPJ = B.CA_CNPJ LEFT JOIN TB_PRODUTOS AS d ON a.REFERENPRODUTO = d.REFERENPRODUTO LEFT JOIN TB_PRODUTOS_ent AS e ON d.COD_PRODUTO_FORN = e.COD_PRODUTO_FORN and d.REFERENPRODUTO = e.REFERENPRODUTO LEFT JOIN TB_ENTRADAS AS C ON (D.CNPJ_FORN = C.ns1_CNPJ or D.CNPJ_FORN2 = C.ns1_CNPJ or D.CNPJ_FORN3 = C.ns1_CNPJ) AND (d.COD_PRODUTO_FORN = C.ns1_cProd) WHERE C.ns1_dhEmi = ( select max(ent.ns1_dhEmi) from tb_entradas as ent where (e.COD_PRODUTO_FORN = ent.ns1_cProd) And (a.DATA_saida)>ent.ns1_dhEmi And (E.CNPJ_FORN=ent.ns1_CNPJ or E.CNPJ_FORN2=ent.ns1_CNPJ or D.CNPJ_FORN3 = ent.ns1_CNPJ)) GROUP BY a.id,DATA_SAIDA,A.NOTA,A.CNPJ, A.NOME_CLIENTE, A.REFERENPRODUTO,A.PRODUTO,A.NCM,A.CFOP,D.UNID,A.QTDE,D.EMB_QTDE,A.VLR_UNITARIO,A.VLR_TOTAL
  9. tamabenetti

    JOIN com critério de DATA

    '
  10. tamabenetti

    JOIN com critério de DATA

    Tem muitos dados nas 2 tabelas. A união é feita através do código do produto. Eu trago todos os registros da TABELA1 e preciso achar uma serie de dados da TABELA2 que contenha a maior data que seja menor do que a data do registro da TABELA1.
  11. tamabenetti

    JOIN com critério de DATA

    Preciso trazer o 'último' registro da TABELA 2 que tenha a data menor do que o meu registro da TABELA 1 TABELA1 02/01/17 03/01/17 06/01/17 TABELA2 01/01/17 03/01/17 04/01/17 05/01/17 PRECISO DO SEGUINTE resultado: TABELA1 TABELA2 02/01/17 01/01/17 03/01/17 01/01/17 06/01/17 05/01/17 O código que estou utilizando está desprezando os dois primeiros resultados do exemplo porque tem casos em que a maior data da TABELA2 é maior do que a data do registro da TABELA1, o que não satisfaz a condição TABELA2.DATA < TABELA1.DATA EXEMPLO DO CODIGO: Select campos from TABELA1 left join TABELA2 ON TABELA1.COD = TABELA2.COD WHERE tabela2.DATA = ( select max(temp.DATA) from tabela2 as temp where (tabela1.DATA)>temp.DATA) Como resolver???
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.