Jump to content

Search the Community

Showing results for tags 'postgresql'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 34 results

  1. rsrodrigoam

    Comparar duas tabelas

    Alguém poderia me ajudar com a seguinte consulta? Tab_base gtin(PK) | cod_entr | aliq_entr | cod_saida | aliq_saida Tab_consulta cod_barra | cod_entr | aliq_entr | cod_saida | aliq_saida | status_saida | corr_saida | status_entr | corr_entr A Tab_consulta é importada e deve consultar se existe o cod_barra igual ao gtin da Tab_base. Em caso positivo, preciso consultar os campos que tem informação na Tab_consulta de códigos e alíquotas, quando tiver informação cruzar com a Tab_base para validar se está correto, se estiver correto (status_* = 'OK'), se estiver diferente (status_* = 'inválido' and corr_* = "alíquota certa vindo da Tab_base"). Desde já agradeço a ajuda.
  2. Quero selecionar 10 noticias do banco de dados, irei utilizar paginação, então na próxima pagina será selecionada da 11-20, 21-30. Só que em todos esses select eu quero que venha a noticia principal que é definida pela coluna "destaque". O motivo é que eu não quero usar 2 select pra buscar noticias. Pra ser bem resumido, eu quero selecionar a noticia principal e depois selecionar mais 10 que podem ser qualquer uma Tentei da seguinte forma: select * from news where destaque = true UNION select * from news ORDER BY id DESC LIMIT 10 OFFSET 1;
  3. Como posso estar recebendo backups todos os dias do banco de dados postgresql através do meu email ? Preciso fazer isso no Windows 2012
  4. Abelfs

    PostgreSQL

    Meus caros, Como posso solucionar este erro na criação desta tabela? create table item_pedido ( no_pedido smallint not null, cd_produto smallint not null, qtd_pedido float not null FOREIGN KEY (num_pedido) REFERENCES PEDIDO (num_ped), FOREIGN KEY (cd_produto) REFERENCES PRODUTO (cod_prod)); ERRO: erro de sintaxe em ou próximo a "FOREIGN" LINE 6: FOREIGN KEY (num_pedido) REFERENCES PEDIDO (num_ped), ^ ********** Error ********** ERRO: erro de sintaxe em ou próximo a "FOREIGN" SQL state: 42601 Character: 118
  5. Boa noite pessoal, Tenho um uma tabela chamada dados_pessoais: id nome cpf nascimento 1 Alex.. 5558528303 08/11/1998 Gostaria de trazer os CPF's distintos mas tambem trazer os nomes, só que não distintos.. atualmente está assim em PHP ( laço foreach ) -- SELECT DISTINCT cpf FROM dados_pessoais --------- SELECT * FROM dados_pessoais WHERE CPF = :cpf ai lista de boas. Só que nao posso fazer o ORDER BY no primeiro select pois o a coluna de ordenacao tem q esta no DISTINCT Me ajudem
  6. Abelfs

    PostgreSQL

    Amigos, novatão na área, me ajudem. Estudante de Ti, Banco de Dados, usando o Pstgre SQL, versão 9.0.23 Não consigo solucionar este erro. CREATE TABLE tb_cargo ( id_cargo INTEGER ds_cargo VARCHAR(40) NOT NULL, valor NUMERIC(15,2) NOT NULL, fg_ativo INTERGER PRIMARY KEY (id_cargo)); ERROR: syntax error at or near "ds_cargo" LINE 3: ds_cargo VARCHAR(40) NOT NULL, ^ ********** Error ********** ERROR: syntax error at or near "ds_cargo" SQL state: 42601 Character: 42
  7. toshiye

    Calcular campos PostgreSQL

    Bom dia a todos, sou novo no fórum e nove em programação. Estou desenvolvendo uma aplicação simples de controle de impressoras, travei em uma parte onde eu devo selecionar os registros de troca de toner e calcular o número de páginas impressas a cada troca. Procurei em muitos lugares e ainda não descobri como fazer exatamente. Em suma, o que tenho de fazer é selecionar os registros e calcular com base em "troca atual - última troca" para ter o número de folhas que o toner imprimiu. Minha tabelas está assim: create table transicao( idtransicao serial primary key, data date, setor varchar(40), marca varchar(40), modelo varchar(40), toner varchar(40), marca_toner varchar(40), folhas int, folhasnew int, id_troca int, id_impressora_toner int, //esse será meu quesito para fazer um "order by" na tabela foreign key(id_troca) references troca(idtroca), foreign key(id_impressora_toner) references Impressora_toner(idimpressora_toner) ) ; A aplicação será em delphi: procedure TfrmMain.sbtnPrintReportGridClick(Sender: TObject); var sqlqTransicao: TSQLQuery; begin begin dmPrint.cdsTonerAqui.Open; dmPrint.cdsTonerAqui.Insert; sqlqTransicao := TSQLQuery.Create(nil); try sqlqTransicao.SQLConnection:= dmPrint.scPrintControl; sqlqTransicao.Close; sqlqTransicao.SQL.Clear; sqlqTransicao.SQL.Add('SELECT *'); sqlqTransicao.SQL.Add('FROM'); sqlqTransicao.SQL.Add('TRANSICAO'); sqlqTransicao.SQL.Add('ORDER BY'); sqlqTransicao.SQL.Add('ID_IMPRESSORA_TONER'); sqlqTransicao.ExecSQL; finally sqlqTransicao.Close; sqlqTransicao.Free; end; end; end; O problema é como fazer esse calculo e torná-lo automático. Se alguém puder me ajudar eu fico muito grato, se eu fui confuso me avisem que faço o melhor para explicar. Desde já agradeço imenso. Cordialmente.
  8. Ola, estou procurando um desenvolvedor(es) para desenvolver um ERP online. Segue o link do PDF para que os interessados possam baixar e obter mais informações sobre o sistema. Desde ja agradeco pela atencao. http://linksoft.com.br/erp/01-ERP-Rev-07.pdf Att, Marcelo
  9. instalei o postgre junto ao pgadmin 4 pelo .run conecto ele funciona tranquilo mas quando eu reinicio a máquina ele sempre da conexão perdida quando eu vou conectar no servidor para acessar meu banco só volta funcionar se eu desinstalar e instalar e colocar o backup do meu banco o que faço para resolver isso?erro que dá quando coloco a senha do banco:--> Connection to the server has been lost.se puderem me ajudar será ótimo, preciso implementar um trabalho da faculdade e desinstalar e instalar o banco faz com que eu perca produtividade na evolução do trabalho.Dês de já, agradeço
  10. rodriguesrj

    Armazenar PDF no PostgreSQL via PHP

    Senhores, boa noite. Estou iniciando na linguagem PHP. Preciso desenvolver uma pequena aplicação que guarde no banco de dados PostgreSQL arquivos em PDF. Depois da inserção, realizar a consulta. Informações: 1. O Campo que receberá o arquivo PDF no Postgresql tem que ser do tipo Bytea; 2. Meu sistema operacional é Windows 10; 3. Meu PostgreSQl é o 9.6, pgadmin 4; 4. Como servidor, utilizo o WampServer; e 5. A inserção até funciona, pelo menos quando consulto no Postgres aparece o nome do arquivo na base de dados, mas para realmente saber se ele está lá, preciso consultá-lo, mas não consigo fazer a consulta. ATENÇÃO: SEI QUE NÃO É A MELHOR PRÁTICA, SALVAR ARQUIVOS NO BD, QUE O MELHOR A FAZER ERA SALVAR O CAMINHO E GUARDAR OS ARQUIVOS EM DIRETÓRIOS, PORÉM O SISTEMA NÃO É GIGANTE E OS ARQUIVOS SÃO PEQUENOS, POR ISSO, NÃO TEREI PROBLEMAS COM DESEMPENHO ENTRE OUTROS, PORTANTO, NÃO PRECISEM RESPONDER APENAS QUE NÃO É BOA PRÁTICA RS. Seguem meus códigos: Tenho no Banco de Dados a seguinte estrutura: (É apenas um ambiente de testes, os campos reais serão diferentes) BD_Revista Tabela tb102_documento colunas: documentoid serial revistaid integer codsecao character(2) documento bytea formulario.html <HTML> <HEAD> <TITLE>Formulário de Cadastro</TITLE> </HEAD> <BODY> <center> <form name = "frmCadastro" method="POST" action = "cadastrar.php"> Documento:<input type="text" size="20" name = "documentoid"><BR> Revista: <input type="text" size="20" name = "revistaid"><BR> Codigo da Seção:<input type="text" size="20" name = "codsecao"><BR> Documento: <input type="file" name = "documento"><BR> <input type="submit" value="Gravar"> </form> <center> </BODY> </HTML> cadastrar.php <?php //Verifica se existe o arquivo executa.php para poder incluí-lo if (file_exists("executa.php")){ include("executa.php"); } if (!file_exists("executa.php")){ $msgErro = "<center><font color='#FF0000'><b>"; $msgErro .= "Não será possível executar nenhuma ação no Banco de Dados!<br>"; $msgErro .= "Porque não existe o arquivo 'executa.php'."; $msgErro .= "</b></font></center>"; echo "<br><br>"; echo $msgErro; echo "<br>"; exit; } //recebendo os dados do formulário $documentoid = $_POST['documentoid']; $revistaid = $_POST['revistaid']; $codsecao = $_POST['codsecao']; $documento = $_POST['documento']; //if ($revistaid == ""){ // echo "<center>O codigo id da revista deve ser informado!</center>"; // echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; //} //if ($nroano == ""){ // echo "<center>O ano deve ser informado!</center>"; // echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; //} //Montando a String de SQL $Sql = "Insert into tb102_documento(documentoid, revistaid, codsecao, documento) values('$documentoid', '$revistaid', '$codsecao', '$documento')"; //Chamando a função, e passando como parâmetro a String de SQL $Resultado = executa($Sql); if ($Resultado){ echo "<center>Cadastro efetuado com sucesso!</center>"; echo "<center><input type = 'button' value = 'Voltar' name = 'btnVoltar' Onclick = 'javascript:history.go(-1)'></center>"; } ?> executa.php <?php function executa($Sql){ //Testando se existe o arquivo if (file_exists("conecta.php")){ include("conecta.php"); } if (!file_exists("conecta.php")){ $msgErro = "<center><font color='#FF0000'><b>"; $msgErro .= "Não foi possível conectar ao banco de Dados<br>"; $msgErro .= "Porque não existe o arquivo 'conecta.php'."; $msgErro .= "</b></font></center>"; echo "<br><br>"; echo $msgErro; exit; } $Resultado = pg_query($conectabd,$Sql); pg_close($conectabd); return $Resultado; } ?> conecta.php <?php $conectabd = pg_connect("dbname = BD_Revista port = 5432 host = localhost user = postgres password = 159-*/rpg"); if ($conectabd) { //Caso queira Imprimir na Tela a mensagem, retirar o comentário echo "Conectado com: " . pg_host($conectabd) . "<br/> "; } else { echo pg_last_error($conectabd); exit; } ?> formconsulta.html <HTML> <HEAD> <TITLE>Formulário de Cadastro</TITLE> </HEAD> <BODY> <center> <form name = "frmConsulta" method="POST" action = "consultar.php"> Documento:<input type="text" size="20" name = "documentoid"><BR> Revista: <input type="text" size="20" name = "revistaid"><BR> Codigo da Seção:<input type="text" size="20" name = "codsecao"><BR> Documento: <input type="text" name = "documento"><BR> <input type="submit" value="Pesquisar"> </form> <center> </BODY> </HTML> consultar.php -> este arquivo está errado, preciso de uma LUZ exatamente na parte da consulta <?php $varSQL = "select documentoid, revistaid, codsecao, documento from tb102_documento"; $varConexao = pg_connect("dbname = BD_Revista port = 5432 host = localhost user = postgres password = 159-*/rpg"); $varResultado = pg_query($varConexao,$varSQL); // $varObjeto = pg_fetch_object ($varResultado,0); if ( $varResultado ) { while ( $varLinha = pg_fetch_array($varResultado) ) { $varConteudo = base64_decode("'".$varLinha[1]."'"); $varArquivo = fopen($varLinha[0],"w"); fwrite($varArquivo,$varConteudo); fclose($varArquivo); echo " <tr> " . " <td width='50%'>" . $varLinha[0] . "</td>" . " <td width='50%'><img src='" . $varLinha[0] ."'></td>" . " </tr> "; } } else { //echo "Erro na leitura<br>"; } ?> Desde já eu agradeço a colaboração de todos...
  11. gibagehrke

    Condicional em consulta PHP/Postgres

    Bom dia pessoal, tenho que adicionar um condicional em uma consulta do PostgreSQL de um sistema PHP, no caso essa consulta vasculha tudo e informa o resultado, porém eu preciso adicionar uma condição que exclua dos resultados os processos que tenham eventos na tabela "followup" preenchidos e que também possuam o "idevento=12". $sql_completo1 ="select distinct pro.nrprocesso as processo, pe.nmpessoa as cliente, pe_di.nmpessoa as exportador, pe_tr.nmpessoa as transporterodoviario, pro.nrrefauxiliar as referencia, pro.nrconhecimento as crt, pro.nrmanifesto as mic, array_to_string(array( select ref.nrreferenciacliente from referenciacliente ref where pro.idprocesso = ref.idprocesso ), ';') as refcliente, di.nrdeclaracaoimportacao as nrdi, pro.nrexportacao as nrdi2, dde.nrdeclaracaodespacho as dde, array_to_string(array( select ddere.nrregistroexportacao from processoddere ddere, processodde dde where pro.idprocesso = ddere.idprocesso and dde.idprocessodde = ddere.idprocessodde ), ';') as re, array_to_string(array( select pdid.nrdocinstrucaodespacho from processodocinstrucaodespacho pdid where pro.idprocesso = pdid.idprocesso and pdid.iddocinstrucaodespacho=1 ),' ') as fatura, CASE WHEN pro.tpcanal='1' THEN 'Amarelo' WHEN pro.tpcanal='2' THEN 'Cinza' WHEN pro.tpcanal='3' THEN 'Vermelho' WHEN pro.tpcanal='4' THEN 'Verde' WHEN pro.tpcanal='5' THEN 'SEM CANAL' WHEN pro.tpcanal='6' THEN 'Laranja' WHEN pro.tpcanal='0' THEN 'SEM CANAL' else 'LIXO' END as canal, ci1.nmcidade as localdesembaraco, tc.nmterminalcarga as localdesembarque, ";
  12. Vinícius Quintão Carneiro

    Criar Aplicação Java com banco de dados

    Oi,estou aprendendo um pouco sobre java desktop e jdbc, porém estou com uma duvida. Todos os projetos que vejo não existe a possibilidade de adicionar novas colunas na tabela do banco. Estas já estão fixas. Por exemplo: se for desenvolver uma aplicação que controle médicos de uma clinica. A classe médico tem seus atributos como por exemplo nome, telefone e especialidade. Mas digamos que futuramente tenha o interesse de adicionar mais um atributo como idade do medico. Teria que adicionar uma nova coluna no banco. Até agora,(OBS: não sei muito ainda sobre este assunto) não achei nada a respeito da possibilidade de aumentar dinamicamente, dependendo do meu usuário, o número de colunas e nomear da forma que o usuário queira. Para aprender mais gosto de ver projetos mas também gosto de desenvolver o meu para ver como funciona. Mas quero desenvolver uma aplicação dinâmica que possibilite ao usuário criar tabelas novas e também novas colunas (com nomes que o próprio usuário escolha) além dos próprios objetos. Não tenho encontrado nada a respeito. Alguém sugere algum tema a ser estudado, ou algum exemplo. Desta forma que estou pensando teria como criar um projeto seguindo o modelo MVC? Agradeço desde já.
  13. alexalannunes

    [Resolvido] PostgreSQL

    Estou terminando um sistema e estou o usando o PostgreSQL, pgAdmin III , e gostaria de saber como faço para exportar o banco em SQL. para passar pro meu patrão subir no server Pois só encontro fazer "backup", Tem como exportar em .sql Alguem??
  14. Olá amigos. Com base em um exemplo, criei uma tabela dinâmica com dados vindos do banco de dados. As colunas estão sendo criadas normalmente de acordo com a tabela existente no BD. Os dados estão vindos corretamente. O problema está na exibição. Supondo que sejam retornados 10 linhas de dados, ao invés de listar somente estas 10 linhas, está listando da seguinte forma: id_estado sigla_estado estado 1 AC Acre id_estado sigla_estado estado 1 AC Acre 2 AL Alagoas id_estado sigla_estado estado 1 AC Acre 2 AL Alagoas 3 AP Amapá Os cabeçalhos estão sendo repetidos também, ao invés de aparecerem somente uma única vez. Meu código: $Sql = "SELECT * FROM..... $rsRegistro = executa($Sql); $numCampos = pg_num_fields($rsRegistro); for($i = 0;$i<$numCampos; $i++){//Pega o nome dos campos $Campos[] = pg_field_name($rsRegistro,$i); } //Montando o cabeçalho da tabela $tabela = '<table border="1"><tr>'; for($i = 0;$i < $numCampos; $i++){ $tabela .= '<th>'.$Campos[$i].'</th>'; } //Montando o corpo da tabela $tabela .= '<tbody>'; while($r = pg_fetch_array($rsRegistro)){ $tabela .= '<tr>'; for($i = 0;$i < $numCampos; $i++){ $tabela .= '<td>'.$r[$Campos[$i]].'</td>'; } $tabela .= '</tr>'; echo $tabela; } exit; //Finalizando a tabela $tabela .= '</tbody></tabela>'; //Imprimindo a tabela echo $tabela;
  15. Boa Tarde, gostaria de saber se existe uma Collation, Character type ou encoding no Postgresql que eu possa configurar meu banco com a seguinte finalidade:Pesquisar campos caracter desconsiderando acentos, maiusculas e minusculas. Exemplo: ao pesquisar 'Jose', virá no resultado da consulta: Jose, JOSE, jose, José.Sei que existe funções para auxiliar nisso, mas gostaria de saber se existe uma configuração que possa ser aplicada. Grata
  16. Boa Tarde, gostaria de saber exatamente para que serve essas opções ao criar um banco de dados: Encoding , lc_collate e lc_ctype. Gostaria de saber também, se posso recriar um mesmo banco, com essas opções diferentes? Obrigada!!!
  17. com a função abaixo quero fazer com que essa função compare a data atual com a data armazenada no banco.POREM ,NAO ESTA HAVENDO RETORNO . create table mercado( id integer, diaEntrega date, valor integer ); insert into mercado values (2,'7-02-18',12); CREATE OR REPLACE FUNCTION get_d () RETURNS date AS $$ DECLARE dataAtual date; varValor integer; dataFinalizada date; BEGIN SELECT CURRENT_DATE INTO dataAtual; /*SELECT diaEntrega FROM mercado WHERE '7-02-18' = diaEntrega INTO dataFinalizada;*/ /*OBS:DESTA FORMA FUNCIONA*/ SELECT diaEntrega FROM mercado WHERE dataAtual = diaEntrega INTO dataFinalizada; return dataFinalizada; END; $$ LANGUAGE 'plpgsql'; select get_d();/*chamando a função*/
  18. manasses77

    Query para separar registros

    Boa tarde galera, estou com dificuldade em realizar uma query. Tenha a seguinte tabela Gostaria de fazer uma query que mostre qual e quantos status_telefonia teve por telefone e data, em seguida criar uma tabela com todos telefones que teve mais de 5 OU + status "MACHINE" OU "INVALID NUMBER" sendo que nenhum desses telefones teve o Status "RANDOM" Acho um pouco completo mas preciso muito da ajuda de vocês
  19. Boa Tarde colegas, gostaria de saber se alguém tem uma ferramenta para gerar backup ou script no Postgres que gere também os comandos de drop. Por exemplo, quando gerar o comando de create table, antes dele terá um drop table, quando gerar os comandos de alter table add constraint, gere antes os comandos de alter table drop constraint. Outra coisa que gostaria de saber é se é possível criar um base de dados escolhendo o numero do OID para ela. Grata!!!
  20. LaraW

    Problemas foreign key

    Caros colegas, estou com uma situação curiosa em relação à uma integridade referencial. Tenho duas tabelas no PostgreSQL, uma tabela pai e outra filha. Existe uma integridade referencial aplicada nessas tabelas da forma convencional: ALTER TABLE TAB_FILHA ADD CONSTRAINT FK_TESTE FOREIGN KEY (CDTESTE) REFERENCES TAB_PAI (CDTESTE); Só que o mais curioso é que quando procuro um determinado codigo, ele está na tabela tab_filha mas não está na tabela tab_pai. Será que existe algum comando que quando ao inserir o registro seja solicitado que ignore as integridades referenciais? Pois a integridade com certeza está aplicada, mas esse registro não segue essa referencia. Tanto que fiz um backup desse banco e ao restaurá-lo deu problema. Um colega até chegou a postar que pode ser que os registros já existiam e ao implementar a integridade ela passa a valer somente para os novos registros, mas isso não é verdade. Ao tentar implementar tendo registros inconsistentes, dá problema e não permite a implementação. Alguém sabe como isso pode ter acontecido. Já passei por essa situação mais de uma vez Obrigada
  21. O meu sistema funciona da seguinte maneira: Tenho 1517 sensores que armazenam em cada dia do ano, uma certa precipitação que é medida de três em três horas durante todo o dia. Tenho uma tabela chamada pontos que tem as seguintes colunas: gid (que é a chave primária de cada sensor), latitude, longitude. E tenho uma outra tabela chamada historico que tem as seguintes colunas: id (que é a chave primária de cada historico), datah, horah, precipitacaoh, gidgeo_fk (que é a chave estrangeira que represente os sensores). Fiz um script em python para armazenar cada sensor em um arquivo chamado sensor.csv, que armazena também cada hora distinta em outro arquivo chamado data.csv, e armazena também a precipitação e hora em arquivos separados. Depois crio um arquivo que faz um relacionamento entre todos estes pontos. O problema é que são 1517 sensores, e eu estava testando isso pra ver se dava tudo certo para 1 sensor apenas, ou seja, ele pega um sensor e armazena todo o histórico deste sensor em arquivos, juntamente com os relacionamentos, mas isso está demorando 192 minutos mais ou menos, PARA APENAS UM SENSOR, pra fazer isso para 1517 sensores iria levar mais de 200 dias! Gostaria que alguém me ajudasse a diminuir este tempo drasticamente, sem ter que mexer em index e etc. Creio que seja o jeito que estou programando o meu script, mas não sei onde estou programando errado. Alguém pode me ajudar? Abaixo está o código do meu script. import psycopg2 import csv conn = psycopg2.connect("\ dbname='bdTrmmTest'\ user='postgres'\ host='127.0.0.1'\ password='1234'\ "); #input() csv_sensor = open('sensor.csv',"w") csv_data = open('data.csv',"w") csv_hora = open('hora.csv',"w") csv_precipitacao = open('precipitacao.csv',"w") csv_rels = open('rels.csv',"w") labelSensor = 'Sensor' labelData = 'Data' labelHora = 'Hora' labelPrecip = 'Precipitacao' labelAS = 'AS' labelEM = 'EM' labelREGISTROU = 'REGISTROU' contGeral = 0 c = conn.cursor() c1 = conn.cursor() c2 = conn.cursor() c3 = conn.cursor() writer = csv.writer(csv_sensor) writer2 = csv.writer(csv_data) writer3 = csv.writer(csv_hora) writer4 = csv.writer(csv_precipitacao) writer5 = csv.writer(csv_rels) writer.writerow(('name:ID', 'IDPostgres', 'latitude', 'longitude', ':LABEL')) writer2.writerow(('data:ID','vdata',':LABEL')) writer3.writerow(('hora:ID','vhora',':LABEL')) writer4.writerow(('precip:ID','valor',':LABEL')) writer5.writerow((':START_ID',':END_ID',':TYPE')) c.execute("SELECT DISTINCT gid, latitude, longitude FROM pontos LIMIT 1") c1.execute("SELECT DISTINCT datah FROM historico") c3.execute("SELECT DISTINCT horah FROM historico") records = c.fetchall() records1 = c1.fetchall() records3 = c3.fetchall() for contSensor in records: print("Escrevendo sensor %d"%(contSensor[0])) writer.writerow((contGeral,contSensor[0], contSensor[1], contSensor[2], labelSensor)) print("Sensor %d escrito"%(contSensor[0])) contSensorFlag = contGeral contGeral += 1 for contReg in records1: contData = contGeral print("Escrevendo data %s"%(contReg[0])) writer2.writerow((contGeral, contReg[0], labelData)) print("Data %s escrita"%(contReg[0])) #escreve relacionamento entre sensor e data print("Escrevendo relacionamento entre sensor %d e data %s"%(contSensor[0],contReg[0])) writer5.writerow((contSensorFlag,contData, labelEM)) print("Relacionamento entre sensor %d e data %s escrito"%(contSensor[0],contReg[0])) contGeral += 1 for contReg3 in records3: c2.execute("SELECT precipitacaoh FROM historico WHERE gidgeo_fk = %d AND datah = '%s' AND horah = %d"%(contSensor[0],contReg[0],contReg3[0])) records2 = c2.fetchall() contHora = contGeral print("Escrevendo hora %d"%(contReg3[0])) writer3.writerow((contGeral, contReg3[0], labelHora)) print("Hora %d escrita"%(contReg3[0])) contGeral += 1 #escreve relacionamento entre data e hora print("Escrevendo relacionamento entre data %s e hora %d"%(contReg[0],contReg3[0])) writer5.writerow((contData,contHora, labelAS)) print("Relacionamento entre data %s e hora %d escrito"%(contReg[0],contReg3[0])) for contReg2 in records2: contPrecip = contGeral print("Escrevendo precipitacao %s"%(contReg2[0])) writer4.writerow((contGeral,contReg2[0], labelPrecip)) print("Precipitacao %s escrita"%(contReg2[0])) #escreve relacionamento entre hora e precipitacao print("Escrevendo relacionamento entre hora %d e precipitacao %s"%(contReg3[0],contReg2[0])) writer5.writerow((contHora,contPrecip, labelREGISTROU)) print("Relacionamento entre hora %d e precipitacao %s escrito"%(contReg3[0],contReg2[0])) contGeral += 1 csv_sensor.close() csv_data.close() csv_hora.close() csv_precipitacao.close() csv_rels.close() print(open('sensor.csv', 'rt').read())
  22. Marcovisk

    Postgresql com Case e Sum

    Olá pessoal! Preciso de uma ajuda com uma consulta SQL no PostGreSQL (9.5). Entendo só o básico de SQL, e estou apanhando pra fazer uma consulta. Tenho uma tabela com a seguinte estrutura (simplificada) e registros. Data, Situação, Total 22/09 Aguardando 2 22/09 Dirigindo 4 22/09 Refeição 1 22/09 Dirigindo 3 22/09 Refeição 1 22/09 Aguardando 3 23/09 Aguardando 1 Preciso fazer uma SQL que me retorne os dados agrupados por situação, e somando a coluna total. Deveria ficar assim: Data Aguardando Dirigindo Refeição 22/09 5 7 2 23/09 1 0 0 Porém, já usei o case com sum e group by e o máximo que consegui foi o seguinte: Data Aguardando Dirigindo Refeição 22/09 5 0 0 // Gostaria que esses três registros ficassem em uma linha só. 22/09 0 7 0 // 22/09 0 0 2 // 23/09 1 0 0 A SQL que eu fiz é a seguinte: select data, (case when situacao='DIRIGINDO' then sum(total) end) as "Dirigindo", (case when situacao='REFEIÇÃO' then sum(total) end) as "Refeição", (case when situacao='AGUARDANDO' then sum(total) end) as "Aguardando" from jornada where codmotorista=3 group by data, situacao Alguém me mostra onde estou errando, por favor!? Muito obrigado!
  23. Olá pessoal boa tarde, estou tentando criar uma trigger para atualizar uma coluna da mesma tabela. Após inserir ou atualizar a tabela, a coluna irá receber o valor de outra coluna, mas em MD5. CREATE OR REPLACE FUNCTION setHash() RETURNS TRIGGER AS $hashCPF$ BEGIN UPDATE tb_teste SET cpf_cnpj_hash = md5(NEW.cpf_cnpj::Text) WHERE cpf_cnpj = NEW.cpf_cnpj; RETURN new; END; $hashCPF$ language plpgsql; CREATE TRIGGER hashCPF AFTER INSERT OR UPDATE ON tb_teste FOR EACH ROW EXECUTE PROCEDURE setHash(); só que na hora de inserir os dados na tabela apresenta o seguinte erro: ERROR: stack depth limit exceeded HINT: Increase the configuration parameter "max_stack_depth" (currently 2048kB), after ensuring the platform's stack depth limit is adequate. CONTEXT: SQL statement "UPDATE tb_teste SET cpf_cnpj_hash = md5(NEW.cpf_cnpj::Text) WHERE cpf_cnpj = NEW.cpf_cnpj" PL/pgSQL function sethash() line 5 at SQL statement SQL statement "UPDATE tb_teste SET cpf_cnpj_hash = md5(NEW.cpf_cnpj::Text) WHERE cpf_cnpj = NEW.cpf_cnpj" Não sei o que está acontecendo, alguém pode dar uma luz.
  24. Não estou conseguindo criar a estas duas função de inserção. Alguem pode ajudar? CREATE TABLE cargo ( CodCargo serial NOT NULL, NomeCargo VARCHAR (30) ); CREATE TABLE partido ( CodPartido serial NOT NULL, NomePartido VARCHAR (30) ); CREATE TABLE zonaSecao ( NumZona INTEGER NOT NULL, NumSecao INTEGER NOT NULL, NomeSecao VARCHAR (30), QteEleitores INTEGER ); CREATE TABLE votacao ( NumZona INTEGER NOT NULL, NumSecao INTEGER NOT NULL, NumCandidato INTEGER NOT NULL, QteVotos INTEGER ); CREATE TABLE cadidato ( NumCandidato INTEGER NOT NULL, CodCargo INTEGER NOT NULL, CodPartido INTEGER NOT NULL, NomeCandidato VARCHAR (30), Salario INTEGER ); ALTER TABLE cargo ADD CONSTRAINT pkCargo PRIMARY KEY (CodCargo); ALTER TABLE cadidato ADD CONSTRAINT pkCandidato PRIMARY KEY (NumCandidato); ALTER TABLE partido ADD CONSTRAINT pkPartido PRIMARY KEY (CodPartido); ALTER TABLE votacao ADD CONSTRAINT pkVotacao PRIMARY KEY (NumCandidato); ALTER TABLE zonaSecao ADD CONSTRAINT pkSecao PRIMARY KEY (NumZona,NumSecao); ALTER TABLE votacao ADD CONSTRAINT fkVotacaoZonaSecao FOREIGN KEY (NumZona,NumSecao) REFERENCES ZonaSecao (NumZona,NumSecao); ALTER TABLE cadidato ADD CONSTRAINT fkcadidatoPartido FOREIGN KEY (CodPartido) REFERENCES partido (CodPartido); ALTER TABLE cadidato ADD CONSTRAINT fkcadidatoCargo FOREIGN KEY (CodCargo) REFERENCES cargo (CodCargo); ALTER TABLE votacao ADD CONSTRAINT fkcadidatoVotacao FOREIGN KEY (NumCandidato) REFERENCES cadidato (NumCandidato); Create function insercao(text) returns char as $$ Declare resultado text; Begin resultado := INSERT INTO partido (NomePartido) VALUES (NomePartido); return resultado; End;$$ language 'plpgsql'; CREATE FUNCTION Verificacao () RETURNS INT AS RETORNO BEGIN RETORNO:= INSERT INTO cargo(NomeCargo) VALUES(NomeCargo); COMMIT; EXECEPTION ROLLBACK END; RETURN RETORNO; END;
  25. Marcio Anderson

    postgresql - ORDER BY e/ou ROW_NUMBER()

    Olá, Como realizar uma ordenação quando a ordem lógica entre uma linha e outra é de forma subsequente em zigue-zague conforme abaixo: "hora_entrada";"hora_saida";"order_by_hora_entrada";"order_needed" "2014-12-30 10:12:00";"2014-12-30 10:34:00";1;1 "2014-12-30 10:34:00";"2014-12-30 11:20:00";2;2 "2014-12-30 11:06:00";"2014-12-31 17:03:00";3;5 "2014-12-30 11:20:00";"2014-12-30 11:21:00";4;3 "2014-12-30 11:21:00";"2014-12-30 11:06:00";5;4 "2014-12-31 17:03:00";"2015-01-02 10:06:00";6;6 "2015-01-02 09:19:00";"2015-01-02 09:25:00";7;8 "2015-01-02 10:06:00";"2015-01-02 09:19:00";8;7 Se obedecer a ordem "hora_entrada", acima estará correto conforme a coluna 3, mas preciso da ordem hora_entrada > hora_saida > hora_entrada (próxima linha), considerando que a hora_saida de uma linha é igual a hora_entrada da linha a seguir, conforme coluna 4. Verifique que a ordem é bem diferente. OBS: esses erros ocorreram quando entre a entrada e a saída pode haver divergências no horário de verão da tramitação. Posso ordenar de forma direta ou utilizando row_number? Agradeço a ajuda!
×

Important Information

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