Jump to content

Thiago Btos

Members
  • Content count

    41
  • Joined

  • Last visited

Community Reputation

0 Comum

About Thiago Btos

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. 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.
  2. 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.
  3. 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.
  4. 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
  5. 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?
×

Important Information

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