Ir para conteúdo
Fórum Script Brasil

Denis Courcy

Moderadores
  • Total de itens

    3.089
  • Registro em

  • Última visita

Posts postados por Denis Courcy

  1. O caminho, segundo seu modelo é,
     

    ... 
    INNER JOIN projects_ha_plant pp ON pp.projects_proj_id = p.proj_id
    INNER JOIN plant pl ON pl.plant_id = pp.plant_plant_id

    As reticências antes de projects são para você completar com seu código.

  2. 2 horas atrás, jezcaceres disse:

    SELECT EQP_SERIAL_ID, TYPE_DESC, MDL_DESC, MOLD_DESC, PROJ_DESC, STATUS_DESC, PLANT_NAME  FROM EQUIPMENTS 
    INNER JOIN TYPE ON
    EQP_TYPE_ID = TYPE_ID

    Na ligação do join (Cláusula ON), você precisa informar o nome da tabela junto com o nome do campo.

    Exemplo:

    SELECT EQP_SERIAL_ID, TYPE_DESC, MDL_DESC, MOLD_DESC, PROJ_DESC, STATUS_DESC, PLANT_NAME  
    FROM EQUIPMENTS 
    INNER JOIN TYPE ON EQUIPMENTS.EQP_TYPE_ID = TYPE.TYPE_ID

    Eu prefiro usar ALIAS para os nomes de tabela, pois assim digito menos. 

    Exemplo 2:

    SELECT EQP_SERIAL_ID, TYPE_DESC, MDL_DESC, MOLD_DESC, PROJ_DESC, STATUS_DESC, PLANT_NAME  
    FROM EQUIPMENTS e
    INNER JOIN TYPE t ON e.EQP_TYPE_ID = t.TYPE_ID

     

  3. Use a instrução de insert into. Veja em no manual de sua versão do mysql, a sintaxe de uso desta instrução.

    As datas são gravadas na forma de string (entre aspas) e no formato aaaa-mm-dd (ano-mês-dia)

  4. Crie a procedure assim:

    -- INICIO PROCEDURE SALDO_MES ANTERIOR --
    DELIMITER $$
    DROP PROCEDURE IF EXISTS SALDO_MES_ANTERIOR $$
    CREATE PROCEDURE SALDO_MES_ANTERIOR (IN MES_ANTERIOR VARCHAR(20), IN MES VARCHAR(20), IN MOVIMENTACAO VARCHAR(20), 
    IN LEVANTAMENTO VARCHAR(20), IN DEPOSITO VARCHAR(20))
    BEGIN
    
    SET @msql = CONCAT("UPDATE ", CONCAT(MOVIMENTACAO,MES), " AS TAB_MOV INNER JOIN ", 
    CONCAT(MOVIMENTACAO,MES_ANTERIOR), " AS TAB_MOV_ANT ON TAB_MOV_ANT.IDENT = TAB_MOV.IDENT
    SET TAB_MOV.MARCO = TAB_MOV_ANT.MARCO WHERE TAB_MOV.MARCO IS NULL");
    
    PREPARE stmt FROM @msql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;

    Execute assim:

    CALL SALDO_MES_ANTERIOR("MARCO","ABRIL","MOVIMENTACAO_CEF_","CEF_LEVANTAMENTO_","CEF_DEPOSITO_");

     

  5. Se a relação entre telefone e outra tabela for muitos para muitos, então a criação de uma tabela de relacionamento é obrigatória.

    Seria assim:

    Cliente(idCliente (PK), nomeCliente, ... ) 

    Telefone(idTelefone(PK), numeroTelefone, ...) 

    CREATE TABLE RLClienteTelefone(
    idCliente (mesmo tipo e tamanho que o campo idCliente na tabela cliente),
    idTelefone(mesmo tipo e tamanho que o campo idTelefone na tabela Telefone),
    PRIMARY KEY(idCliente,idTelefone),
    CONSTRAINT `RLClienteTelefone_FK_001` FOREIGN KEY (`idCliente`) REFERENCES `Cliente` (`idCliente`) ON DELETE NO ACTION ON UPDATE NO ACTION,
    CONSTRAINT `RLClienteTelefone_FK_002` FOREIGN KEY (`idTelefone`) REFERENCES `Telefone` (`idTelefone`) ON DELETE NO ACTION ON UPDATE NO ACTION
    )Engine=InnoDB;

     

     

  6. O campo que funciona como PK em uma tabela e FK em outra deve ser do mesmo tipo e tamanho em ambas as tabelas, ou o constraint não poderá ser aplicado.

    11 horas atrás, rodrigo.lima disse:

    ALTER TABLE autores ADD CONSTRAINT FK_idcodigo_autor FOREIGN KEY (idcodigo_autor) REFERENCES livros(codigo_autor)

    ON UPDATE RESTRICT

    ON DELETE RESTRICT;

    Supondo que autores escrevem livros, sua constraint não está invertida?

     

     

  7. Em 24/05/2016 at 10:43, hisael disse:

     

     Em um quartel, os soldados estão sendo qualificados (treinados e formados) nas qualificações militares. Para facilitar o estudo, os soldados foram divididos em turmas e, no âmbito dessas turmas, colocados em duplas (cada membro de uma dupla é chamado, no jargão militar, de “derrancho”). Um conjunto de turmas forma um Pelotão de Instrução. Os Pelotões de Instrução constituem a Companhia de Instrução (única no quartel). 

     

    Observe o enunciado de seu exercício. Soldado pertence a Dupla; Dupla pertence a Turma; Turma pertence a Pelotão; e Pelotão pertence a Companhia.

    Para que seu desenho respeite o disposto acima modifique seu desenho,

    remova o atributo pelotao_companhia_id da tabela Turma (Item 1 do post do Stoma)

    remova a ligação 1:N entre Turmas e Soldado

    faça uma ligação 1:N entre Soldado e Dupla.

    remova os atributos id_Soldado1 e id_Soldado2 na tabela Duplas

    Não faça o item 2 do post do Stoma

    Faça o item 3 do Post do Stoma

     

     

  8. Corrija para:

    SELECT CODPRO, NOMPRO, COMPRADO, VENDIDO, (COMPRADO - VENDIDO) AS ESTOQUE
    FROM (SELECT prd.CODPRO, prd.NOMPRO, SUM(IF(comp.QTDE_COMPRADA IS NULL, 0, comp.QTDE_COMPRADA)) AS COMPRADO, 
          SUM(IF(vds.QTDVEN IS NULL, 0, vds.QTDVEN)) AS VENDIDO
          FROM PRODUTOS prd 
          LEFT JOIN COMPRAS comp ON comp.COD_PRODUTO = prd.CODPRO
          LEFT JOIN VENDAS   vds ON vds.CODVEN       = prd.CODPRO
          GROUP BY prd.CODPRO
         ) e;

     

×
×
  • Criar Novo...