Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

daniellecd

Postgres - Dúvida com registros

Recommended Posts

Boa tarde,
Poderiam me ajudar?


Gente, fiz uma consulta na minha tabela pessoa, onde tenho que retornar os pais desta pessoa. Até ai, tudo bem!
Fato é que teria que voltar tudo em uma única linha! Ou seja, se a pessoa tem pai e mãe, o registro vem duplicado, apenas diferenciando o nome do pai e da mãe.Exemplo:

1. Paulo Camargo / Pai: Carlos Camargo
2. Paulo Camargo / Mãe: Sônia Camargo
Como poderia estar fazendo para vir uma única tupla já com os nomes dos pais?
Ex.:
1.Paulo Camargo / Pai: Carlos Camargo / Mãe: Sônia Camargo.
Vejam que:
Tabela PESSOA estão todas as pessoas! (Filho, pai, mãe, etc.)
Tabela FILIACAO é onde faz a ligação do filho (a) com os pais.


Desde já agradeço imensamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ckcesar
      Eu tenho uma aplicação no zend com a versão 5.6 e com o postgresql 9.6. Agora eu precisei mudar a versão do meu postgresql para o 16.1, a parte de conexão do bd e consultas sqls funciona perfeitamente, o meu problema está para acessar os meus controllers. Eles não são encontrados em nenhuma rota, quero ver se alguém já passou por esse problema para me ajudar. Obrigado.
    • Por ronaldo_calado
      Bom dia, estou com dificuldades em fazer um consulta para retornar a soma de valores usando um alias, gostaria de saber se tem outra forma de fazer a consulta, ela funciona no mysql, mas como postgres funciona de forma diferente eu não estou conseguindo fazer
      SELECT date_part('year', due_at) AS ano, date_part('month', due_at) AS mes, (SELECT SUM(value) FROM app_invoices WHERE user_id = 51 AND status = 'paid' AND type = 'income' AND year(due_at) = ano AND month(due_at) = mes) AS income, (SELECT SUM(value) FROM app_invoices WHERE user_id = 51 AND status ='paid' AND type = 'expense' AND year(due_at) = ano AND month(due_at) = mes) AS expense FROM app_invoices WHERE user_id = 51 AND status = 'paid' AND due_at >= DATE(now() - INTERVAL '3' MONTH) GROUP BY date_part('year', due_at), date_part('month', due_at) O erro que está retornando é ERROR: column "ano" does not exist
       
      A ideia era ele somar as faturas dos meses e como na imagem:
       

    • Por TFernandes89
      Bom dia, preciso atualizar uma linha do meu banco de dados validando duas colunas diferentes... estou tentando da seguinte forma:
       
      update produn set prun_margem=prun_margem + 1 from produtos where prod_codigo=prun_prod_codigo and prun_unid_codigo='003' and prun_unid_codigo='050' and prod_grup_codigo='10003'  
      Tenho que atualizar a margem em +1 somente quando se tratar do grupo (prod_grup_codigo) 10003 e nas unidades (prun_unid_codigo) 003 e 050, dessa forma que estou tentando não me da erro, porem não atualiza nada, e se eu tiro a unidade 050 ele atualiza na unidade 003 normalmente.
    • Por icorradi
      Tenho uma "rede social" de artigos, e existem mais de 5 milhoes de artigos registrados. Meu backend foi feito com Django, então foi utilizado o Postgres.

      Estou com um grande problema: para fazer a consulta na tabela de artigos, está SUPER lento, claro q o motivo (creio eu), é a quantidade de linhas (mais de 5 milhoes) e a quantidade de texto da coluna do corpo do artigo. Mas como arquitetar meu banco de dados para para ser tipo o wikipedia? Como deixar minha consulta rapida? Separar em varios bancos? 
       
      Como essas empresas gigantes (facebook, wikipedia, amazon, google) fazem pra suportar milhoes de dados?

      O meu problema será q é o Postgres, q não é preparado pra isso?
       
      Obrigado.
    • Por Analinee3
      Fiz o mapeamento da atividade e   Fiz o código, mas notei q da erro  bem próximo as chaves. Sou iniciante, não tenho noção do erro , como o q é ou que pode ser.agradeço a ajuda!
       
      CREATE TABLE CLIENTE(
      cod_cliente INTEGER NOT NULL,
      nome_cliente VARCHAR(30) NOT NULL,
      num_pedido  INTEGER,
      PRIMARY KEY(COD_CLIENTE)
      );
       CREATE TABLE TELEFONE (
       cod_cliente  INTEGER NOT NULL,
       telefone_fixo  VARCHAR (10),
       telefone_celular  VARCHAR (10),
       FOREIGN KEY ( COD_CLIENTE)
        REFERENCES  CLIENTE  (COD_CLIENTE)
       PRIMARY KEY ( COD_CLIENTE)
         REFERENCES CLIENTE (COD_CLIENTE)
        ); 
        CREATE TABLE EMAIL_CLIENTE (
         cod_cliente     INTEGER NOT NULL,
        email_cliente,  VARCHAR (30),
         email2_cliente VARCHAR (30),
         FOREIGN KEY ( COD_CLIENTE)
        REFERENCES  CLIENTE  ( COD_CLIENTE)
       PRIMARY KEY ( COD_CLIENTE)
         REFERENCES CLIENTE (COD_CLIENTE)
         );
         CREATE TABLE VENDA (
         num_pedido      INTEGER,
         dt_pedido     TIMESTAMP,
         cod_pedido   INTEGER,
         PRIMARY KEY (NUM_PEDIDO) 
         FOREIGN KEY (COD_PRODUTO)
           REFERENCES  PRODUTO (COD_PRODUTO);
         
        CREATE TABLE VENDA_CONTEM(
      num_pedido        INTEGER,
      cod_produto        INTEGER,
      pco_produto      NUMERIC (6,0),
      qtd              NUMERIC (6,0),
      PRIMARY KEY (NUM_PEDIDO)
      REFERENCES  VENDA( NUM_PEDIDO)
      FOREIGN KEY ( COD_PRODUTO)
       REFERENCES  PRODUTO ( COD_PRODUTO)
       );
       CREATE TABLE PRODUTO (
       cod_produto      INTEGER,
       nom_produto      VARCHAR (30) NOT NULL,
       est_produto     NUMERIC (6,0),
       pco_produto    NUMERIC (6,0),
       fabricante       VARCHAR (30),
       FOREIGN KEY (NUM_PEDIDO)
        REFERENCES  COMPRA ( NUM_PEDIDO)
        PRIMARY KEY (COD_PRODUTO)
       );

       CREATE TABLE COMPRA (
       num_pedido     INTEGER,
       dta_pedido     TIMESTAMP,
        FOREIGN KEY (NUM_PEDIDO)
        REFERENCES  VENDA (NUM_PEDIDO)
        PRIMARY KEY (NUM_PEDIDO)
         REFERNCES VENDA(NUM_PEDIDO)
         );
         CREATE TABLE FORNECEDOR (
         cod_fornecedor         INTEGER,
         nom_fornecedor     VARCHAR (30) NOTT NULL,
         rua_local             VARCHAR (30),
         numero_local      VARCHAR (30),
         PRIMARY KEY ( COD_FORNECEDOR)
         );
      CREATE TABLE TELEFONE_FORNECEDOR(
      cod_fornecedor   INTEGER,
      telefone1   VARCHAR (10),
      telefone2      VARCHAR (10),
      FOREIGN KEY ( COD_FORNECEDOR)
        REFERENCES FORNECEDOR ( COD_FORNECEDOR)
      PRIMARY  KEY ( COD_FORNECEDOR)
          REFERENCES  FORNECEDOR ( COD_FORNECEDOR)
          
        );
        CREATE TABLE EMAIL_FORNECEDOR (
      cod_fornecedor    INTEGER,
      email1_fornecedor  VARCHAR (30),
      email2_fornecedor   VARCHAR (30),
      FOREIGN KEY (COD_FORNECEDOR)
        REFERENCES FORNECEDOR ( COD_FORNECEDOR)
       PRIMARY  KEY ( COD_FORNECEDOR)
          REFERENCES  FORNECEDOR ( COD_FORNECEDOR)
          );

×

Informação importante

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