Ir para conteúdo

POWERED BY:

Thiago Btos

Members
  • Total de itens

    43
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre Thiago Btos

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

  1. Thiago Btos

    Select com coluna do período acumulado

    Motta bom dia. Eu tentei usar o over, se fosse para o mesmo periodo do filtro que está no where, daria certo. Mas preciso ter um outro periodo (ano) nessa coluna YTD, é onde está o meu problema
  2. Thiago Btos

    Select com coluna do período acumulado

    Bom dia pessoal. Estou com uma dúvida na estruturação do select. Tenho um relatório que está extraindo já informações corretamente, com base no período gerado (inicial e final) Exemplo de como está hoje: SELECT D.CATEGORIA, SUM(D.VALOR) AS VALOR_VENDA, D.DATA AS (MES_ANO) FROM DUAL D WHERE D.DATA BETWEEN '20210501' AND '20210731' GROUP BY D.CATEGORIA, D.DATA Retornando: Categoria | Valor_venda | Mes_Ano 1 | 1000,00 | 05/2021 1 | 2000,00 | 06/2021 1 | 800,00 | 07/2021 2 | 500,00 | 05/2021 2 | 200,00 | 07/2021 2 | 700,00 | 06/2021 Até ai está tranquilo. Porém foi solicitado para adicionar uma coluna YTD (Year to data - acumulado do ano) agrupando o valor total da venda do ano do filtro. Então se foi colocado uma data do período Jan/2020 a Mar/2020, essa nova coluna tem que pegar as vendas do ano inteiro de 2020 E precisa me retornar assim: Categoria | Valor_venda | Mes_Ano | YTD 1 | 1000,00 | 05/2021 | 15000,00 1 | 2000,00 | 06/2021 | 15000,00 1 | 800,00 | 07/2021 | 15000,00 2 | 500,00 | 05/2021 | 8000,00 2 | 200,00 | 07/2021 | 8000,00 2 | 700,00 | 06/2021 | 8000,00 (Os valores de 15000 e 8000 seria a soma do ano inteiro) O que consegui pensar seria um subselect que tem o where com data do ano, porém nesse caso retorno mais de um resultado no subselect, não dando para usar... Qual seria a alternativa que tenho?
  3. Thiago Btos

    [Resolvido] Select usar soma de coluna em nova coluna

    Obrigado Motta, com o sum over deu certo. Essa função realmente não conhecida. Obg novamente pelo auxílio.
  4. Thiago Btos

    [Resolvido] Select usar soma de coluna em nova coluna

    Boa tarde Motta. Isso mesmo, o total acumulado das colunas horas e qtde. (145/21)*5 =34.52 (145/21)*3=20.71 E assim vai.
  5. Thiago Btos

    [Resolvido] Select usar soma de coluna em nova coluna

    Boa tarde pessoal. Estou travado em uma parte do select do qual preciso somar os valores de todos os registros da coluna, e usa-lo como base de calculo para outra coluna SELECT PRODUTO, HORAS, QTDE, VARIACAO FROM DUAL Meu select está retornando algo assim: PRODUTO | HORAS | QTDE | VARIACAO A | 2 | 20 | 5 B | 6 | 25 | 3 C | 5 | 70 | 9 D | 8 | 30 | 2 -------------------------------------------------------- Total | 21 | 145 | Preciso criar uma nova coluna com a formula (Total Qtde / Total horas) * variação ficando assim: PRODUTO | HORAS | QTDE | VARIACAO | CONTA A | 2 | 20 | 5 | 34.52 B | 6 | 25 | 3 | 20.71 C | 5 | 70 | 9 | 62.14 D | 8 | 30 | 2 | 13.80 A forma que estou tentando fazer é via subselect, mas ele não agrupa todas as linhas, e somente o registro da linha atual. SELECT PRODUTO, HORAS, QTDE, VARIACAO, (SELECT (SUM(QTDE) / SUM(HORAS)) * VARIACAO) AS CONTA FROM DUAL Dessa forma me retorna o seguinte resultado, como se estive calculando somente a linha atual e não toda a coluna. PRODUTO | HORAS | QTDE | VARIACAO | CONTA A | 2 | 20 | 5 | 50 B | 6 | 25 | 3 | 12.5 C | 5 | 70 | 9 | 126 D | 8 | 30 | 2 | 7.5 Espero que eu tenha conseguido explicar minha necessidade de forma que de para entender.
  6. Thiago Btos

    Select - maior registro

    Obrigado Motta pela sugestão, mas acabou retornou um outro resultado. Fiz um ajuste no meu código e ficou assim, onde concatenei data com hora e posteriormente usei o max, trazendo um único registro: SELECT QD1_MAT,RA_NOME,MAX(DT_BAIXA) AS DT_BAIXA FROM ( SELECT QD1_MAT, RA_NOME, QD1_DTBAIX||' '||QD1_HRBAIX AS DT_BAIXA FROM QD1010 QD1 INNER JOIN SRA010 SRA ON RA_MAT = SUBSTR(QD1_MAT, 5) AND SRA.D_E_L_E_T_ <> '*' WHERE QD1.D_E_L_E_T_ <> '*' ORDER BY QD1_DTBAIX, QD1_HRBAIX) GROUP BY QD1_MAT,RA_NOME
  7. Thiago Btos

    Select - maior registro

    Boa tarde galera. Fiz um select que tras 4 informações do banco (matricula, nome, data e hora) SELECT QD1_MAT, RA_NOME, QD1_DTBAIX AS DATA, QD1_HRBAIX FROM QD1010 QD1 INNER JOIN SRA010 SRA ON RA_MAT = SUBSTR(QD1_MAT, 5) AND SRA.D_E_L_E_T_ <> '*' ORDER BY QD1_DTBAIX, QD1_HRBAIX Retornando os seguintes registros: Preciso retornar somente as linhas em amarelo, que seria a seguinte condição. Caso tiver alguma matricula igual, trazer somente o registro com a maior data, junto com seu respectivo horário. O mais próximo que consegui chegar foi utilizando o MAX para data e hora, e agrupando o restante dos campos. SELECT QD1_MAT,RA_NOME,MAX(DATA), MAX(QD1_HRBAIX) FROM ( SELECT QD1_MAT, RA_NOME, QD1_DTBAIX AS DATA, QD1_HRBAIX FROM QD1010 QD1 INNER JOIN SRA010 SRA ON RA_MAT = SUBSTR(QD1_MAT, 5) AND SRA.D_E_L_E_T_ <> '*' ) GROUP BY QD1_MAT,RA_NOME Porém na hora ele não pega o valor correspondente e sim o valor máximo. Ai estou travado nessa parte, como faço para trazer a hora corresponde sem o restante dos registros?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.