Ir para conteúdo
GudaEevSo

Somar a quantidade até um determinado valor

Recommended Posts

Bom dia,

 

Preciso fazer a soma da coluna QT_REAL onde a soma das linhas não podem passar um determinado valor (NR_CAMPO) . Essa soma deve ser feita validado o NR_CICLO, NR_OP, DS_NIVEL e CD_COR onde será agrupado as linhas até a QT_REAL for menor ou igual que o NR_CAMPO.

 

Como está hoje:

Capturar.PNG.45135df8ca5e1883b8cdcdc625117cc0.PNG

 

Como deveria ficar:

Capturar2.thumb.PNG.299137532f4c4ff453b1fa0264b18c51.PNG

 

Colunas da tabela:

NR_CICLO,

NR_OP,

DS_NIVEL,

NR_CAMPO = CAMPO LIMITADOR - QUANTIDADE DA COLUNA SOMADA NÃO PODE ULTRAPASSAR ESSE VALOR.

CONT = NUMERO DE LINHAS

CD_COR

QT_REAL = QUANTIDADE A SER SOMADA.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz algo parecido uma vez , um total acumulado dos 12 últimos meses , usei analytic functions , o PRECEDING , talvez com between você consiga montar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Alexandre Garcia
      Olá,
       
      Estou precisando criar uma tabela que deve ser preenchida com os nomes dos arquivos do diretório $ORACLE_HOME/rdbms/admin
       
      Alguém teria alguma ideia de como posso fazer isso? Ou se isso é possível?
       
      Obrigado.
    • Por Marcos Vilela Alves
      Bom dia.
      meu caso é o seguinte. tenho um server sql Oracle onde tenho os dados.
      meu sistema web tem que conectar nesse server. ok. isso já foi feito, inclusive como SysDBA.
       
      sem me logar, varias consultas acontecem, e tem retorno.
       
      na tela de login que tudo enrola. 
      eu fiz a tela, e as autenticações corretamente. o sistema funciona, mas a query para consulta de usuario e senha, apesar de estar correta e no banco retornar dados, no php nao retorna nada. consulta, mas volta vazia.
      segue a consulta
      SELECT u.HANDLE , u.NOM_USUARIO , u.DSC_OBSERVACAO FROM BANCO.USUARIOS u WHERE u.NOM_USUARIO = 'MARCOS' AND u.NOM_SENHA = 'XXX000XXX' na base, meu usuario vem como retorno no php vem vazia. como se nao houvesse o dado na base.
       
      alguem sabe o pq?
       
    • Por neijuniorgomes
      Oi pessoal, tudo certo, estou com esse problema em um script:
       
      Warning: mysql_query(): Access denied for user 'root'@'localhost' (using password: NO) in /home/logawebc/public_html/apostas/site/menu_jogos.phpon line 22
       
      Essa linha 22 no menu_jogos.php está aqui:

       
      //die($sql_campeonato); $query_campeonato = mysql_query($sql_campeonato); $conta_campeonato_sim = mysql_num_rows($query_campeonato);  
      O arquivo de conexão é este:

       
      <meta charset="UTF-8" /> <?php //Não mostrar erros PHP //error_reporting(0); //$conexao = mysql_connect("188.93.231.208", "betdasor_remoto", "bancoremoto123") or die("Erro ao logar no Banco!"); //$conexao = mysql_connect("localhost", "root", "uj1h8h17") or die("Erro ao logar no Banco!"); //$conexao = mysql_connect("localhost", "gestorde_betdasor_bd", "fK#bOlRt#T1%") or die("Erro ao logar no Banco!"); //$db = mysql_select_db("betdasor_bd") or die("Banco de Dados nao encontrado!"); //mysql_query("SET NAMES 'utf8'"); //mysql_query('SET character_set_connection=utf8'); //mysql_query('SET character_set_client=utf8'); //mysql_query('SET character_set_results=utf8'); ini_set("display_errors", "off"); $host = "localhost"; $user = "root"; $password = "XXX"; $database = "betdasor_remoto"; global $db; $db = mysqli_connect($host, $user, $password, $database); function mysql_query($query) { $db = $GLOBALS['db']; return mysqli_query($db, $query); } function mysql_num_rows($result) { return mysqli_num_rows($result); } function mysql_fetch_array($result) { return mysqli_fetch_array($result); } E a tabela do banco de dados é esta:
       
      -- Estrutura para tabela `jogos_placarmania`
      --
      CREATE TABLE `jogos_placarmania` ( `id` int(11) NOT NULL, `campeonato` varchar(100) DEFAULT NULL, `data` varchar(100) DEFAULT NULL, `hora` varchar(100) DEFAULT NULL, `destaque` varchar(10) DEFAULT NULL, `prioridade` varchar(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- --------------------------------------------------------
       
      Podem me ajudar? Obrigado!
    • Por Motta
      Alguém já passou por este problema ?

      Prezado(a)s : Ao enviar um email em HTML pelo package SMTP o Oracle coloca um espaço em branco no meio de uma palavra do nada ,

      algo como
      Oracle coloca um espaço
      fica
      Oracle colo ca um espaço
       
      SP de Envio
       
       
      Pesquisei alguns sites e vi relação com um buffer limitado a 1000 caracteres , não achei nenhum parâmetro para aumentar isto.

      Talvez a solução seja varrer o blob de 1000 em 1000 registros e tratar isto , pegar uma palavra no meio quando na posição 1000.
      create or replace PROCEDURE ENVIA_EMAIL_CLOBH (ds_email_origem_w varchar2, ds_email_destino_p varchar2, ds_assunto varchar2, p_attach_clob IN CLOB DEFAULT NULL, p_httm in varchar2 default 'S', p_log out varchar2, p_nome_destino in varchar2 default null) is l_step PLS_INTEGER := 900;--12000;-- make sure you set a multiple of 3 not higher than 24573 (doc Oracle) ds_smtp_w varchar2(20) := '......'; /* Abre conex?o SMTP e HTTP */ CONEXAO UTL_SMTP.CONNECTION; -- fixar este envio por segurança vs_origem varchar2(100) := ds_email_origem_w; -- vs_para varchar2(100); vs_cc varchar2(100); -- PROCEDURE send_header(name IN VARCHAR2, header IN VARCHAR2) AS BEGIN UTL_SMTP.WRITE_DATA(CONEXAO, name || ': ' || header || UTL_TCP.CRLF); END; BEGIN /* Abre conex?o com um Servidor SMTP(Simple Mail Transfer Protocol), porta padr?o SMTP e 25 */ CONEXAO := utl_smtp.open_connection (ds_smtp_w,25); UTL_SMTP.HELO (CONEXAO, ds_smtp_w); /* Endereco do servidor de SMTP */ --utl_smtp.command (CONEXAO, 'AUTH LOGIN'); --utl_smtp.command (CONEXAO, utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw((ds_user_id_w))))); --UTL_SMTP.COMMAND (CONEXAO, UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.BASE64_ENCODE(UTL_RAW.CAST_TO_RAW((DS_SENHA_SMTP_W))))); UTL_SMTP.MAIL (CONEXAO, ('<' || vs_origem || '>')); /* E-mail de quem esta mandando */ -- se estiver em lista separado por ";" manda para o 1º como "para" e para o 2º como CC (copia) /* Para quem vou mandar */ IF INSTR(ds_email_destino_p,';') = 0 THEN vs_para := ds_email_destino_p; UTL_SMTP.RCPT (CONEXAO, ('<' || ds_email_destino_p || '>')); /* Para quem vou mandar */ ELSE vs_para := SUBSTR(ds_email_destino_p,1,INSTR(ds_email_destino_p,';')-1); vs_cc := SUBSTR(ds_email_destino_p,INSTR(ds_email_destino_p,';')+1,length(ds_email_destino_p)); UTL_SMTP.RCPT (CONEXAO, ('<' || vs_para || '>')); /* Para quem vou mandar original */ UTL_SMTP.RCPT (CONEXAO, ('<' || vs_cc || '>')); /* Para quem vou mandar copia */ END IF; UTL_SMTP.OPEN_DATA(CONEXAO); If upper(p_httm) <> 'S' Then send_header('Subject','=?iso-8859-1?Q?' ||UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(ds_assunto)))); Else send_header('Subject','=?iso-8859-1?Q?' ||UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.QUOTED_PRINTABLE_ENCODE(UTL_RAW.CAST_TO_RAW(ds_assunto)))|| '?='); end if; If upper(p_httm) <> 'S' Then UTL_SMTP.write_data(CONEXAO, 'Content-Type: text/html; charset="UTF-8"' || utl_tcp.CRLF); Else UTL_SMTP.write_data(CONEXAO, 'Content-Type: text/html; charset="UTF-8"' || utl_tcp.CRLF ); end if; send_header('From',ds_email_origem_w); --se denominou o destino formata o envio , senão vai o proprio email --tratamento diferente do "from" pois este é em geral dinamico --feito pela stored procedure chamadora if trim(p_nome_destino) is null then send_header('To',vs_para); else send_header('To','"'||trim(p_nome_destino)||'" <'||vs_para||'>'); end if; If Trim(vs_cc) is not null Then--copia (nao formata o destino) send_header('CC',vs_cc); end if; FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_clob) - 1 )/l_step) FOR i IN 0 .. TRUNC((DBMS_LOB.getlength(p_attach_clob) - 1 )/l_step) LOOP UTL_SMTP.WRITE_DATA(CONEXAO, DBMS_LOB.substr(p_attach_clob, l_step, i * l_step + 1)); END LOOP; UTL_SMTP.CLOSE_DATA(CONEXAO); UTL_SMTP.QUIT (CONEXAO); Exception when OTHERS then utl_smtp.quit (conexao); p_log := 'Erro: ' || SQLERRM; END ENVIA_EMAIL_CLOBH;

      A rotina do SMTP é basicamente a que a documentação do Oracle indica.
    • Por Cesar Masserati Procopio
      Boa Tarde Pessoal,
       
      Estou enviando duas Imagens para ajudar a ilustrar o que estou tentando fazer.
       
      Seguinte estou batendo a minha cabeça com isso e preciso de uma luz para resolver, por favor. 

      Estou recriando o WhatsApp Web para fins de aprendizagem, estou tentando fazer uma QUERY que me retorne a lista das pessoas que estou conversando, e também a Última Mensagem da conversa que tive com a pessoa.
      EXEMPLO: 
      Retornar a lista das Pessoas que conversam com o Cesar
      Neste caso teria que me retornar a lista abaixo:
      idAmigo NomeAmigo UltimaMsg     DataMsg 8779 Adelita Pereira Machado Couto Msg CINCO - Cesar enviou para Adelita  05/07/2018 17:22 7669 Hellen Sabrina de Brito Msg TRES - Hellen enviou para Cesar  05/07/2018 12:31 63 Sandro Batista Dos Santos Msg UM - Cesar enviou para Sandro 05/07/2018 17:22 1545 Gino Cezar dos Santos Msg UM - Gino enviou para Cesar 05/07/2018 17:20
×

Informação importante

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