Ir para conteúdo

Arquivado

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

  • 0
WebCorplfs

Apoio para montar uma query MYSQL

Pergunta

Pessoal, bom dia,.. por gentileza alguem pode me dar uma ajuda:

Preciso montar uma consulta que funcione da seguinte forma:

SELECT distinct hora_ponto, data, pis 
FROM conferencia_ponto
where pis = '013025727232' and data = '2017/01/30'

que traz o seguinte resultado:

hora_ponto   data     pis
07:40:00          30/01/2017 00:00:00       013025727232
10:59:00 30/01/2017 00:00:00 013025727232
12:56:00 30/01/2017 00:00:00 013025727232
17:25:00 30/01/2017 00:00:00 013025727232

* hora ponto é um campo que estou importando de um txt de relogio de ponto

E outra  query com a seguinte estrutura e resultado :

SELECT b.horario, a.data, a.pis    
 FROM escala_individual as a, cadastro_horario_itens as b, cadastro_horarios as c
 where a.evento = b.codigo_horario and b.codigo_horario = c.codigo AND a.pis = '013025727232'
 and a.data = '2017/01/31' group by data, horario
horario  data pis
07:30:00        31/01/2017 00:00:00       013025727232
12:00:00 31/01/2017 00:00:00 013025727232
13:00:00 31/01/2017 00:00:00 013025727232
17:00:00 31/01/2017 00:00:00 013025727232

* horario é o campo que parametrizei com as tabelas cadastro_horarios x cadastro_horario_itens, ou seja, sao horarios de trabalho pre definidos.

nao consegui ate o momento montar uma query que me apresentasse da seguinte forma:

horario hora_ponto         data pis
07:30:00      07:40:00        31/01/2017 00:00      13025727232
12:00:00 10:59:00        31/01/2017 00:00 13025727232
13:00:00 12:56:00        31/01/2017 00:00 13025727232
17:00:00 17:25:00        31/01/2017 00:00 13025727232

O problema que estou tendo é que ao trazer os registros com um join e as devidas clausulas where ele repete alguns valores devido a quantidade de registros na tabela cadsatro_horario_itens... nao sei se fui claro...

alguem pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

O Sistema não tem uma tipagem para a marcação ?

 

Tipo

1 entrada

2 saida almoço

3 volta almoço

4 saída

 

O sistama teria de ter um inteligência para fazer esta marcação no ponto

 

Este poderia ser uma chave entre as duas tabelas , outra saída seria uma comparação

horario_ponto between horario - X and horaria + X

 

onde X seria um intervalo de tolerãncia

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por janir.matheus
      Boa noite, preciso de ajuda pois não seu por onde começar:
       
      Partindo dessas 3 tabelas:
      Tabela 1:
      CREATE TABLE `tbl_cat_estoque` ( `Cod` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'Atenção ao campo CHAR', `Transacao` VARCHAR(100) NOT NULL, `Descricao` TEXT NOT NULL, PRIMARY KEY (`Cod`), UNIQUE INDEX `Matricula` (`Transacao`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=2 ; Tabela 2:
      CREATE TABLE `tbl_estoque` ( `Cod` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT, `Dia` DATE NOT NULL, `Filial` INT(10) UNSIGNED NOT NULL, `Transacao` INT(10) UNSIGNED NOT NULL, `Produto` INT(10) UNSIGNED NOT NULL, `Cliente_Fornecedor` INT(10) UNSIGNED NOT NULL, `Descricao` VARCHAR(100) NULL DEFAULT NULL, `Quantidade` INT(11) NOT NULL, `Validade` DATE NULL DEFAULT NULL, `Efetivado` ENUM('S','N') NOT NULL, `N_Controle` INT(11) NULL DEFAULT NULL, PRIMARY KEY (`Cod`), UNIQUE INDEX `N_Controle` (`N_Controle`), INDEX `FK_Produto` (`Produto`), INDEX `FK2_Trans_Estoque` (`Transacao`), INDEX `FK_Contatos` (`Cliente_Fornecedor`), INDEX `FK4_Filial` (`Filial`), CONSTRAINT `FK2_Trans_Estoque` FOREIGN KEY (`Transacao`) REFERENCES `tbl_cat_estoque` (`Cod`), CONSTRAINT `FK_Produto` FOREIGN KEY (`Produto`) REFERENCES `tbl_produtos` (`Cod`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=758 ; Tabela 3:
      CREATE TABLE `tbl_produtos` ( `Cod` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `Produto` VARCHAR(250) NOT NULL, `Preco_Custo` FLOAT(10,2) NOT NULL, `Fornecedor` INT(10) UNSIGNED NOT NULL, `Grupo` INT(10) UNSIGNED NOT NULL, `Informacoes` TEXT NULL, `Preco` DECIMAL(10,2) NOT NULL, `Esgotado` ENUM('S','N') NOT NULL DEFAULT 'N', PRIMARY KEY (`Cod`), UNIQUE INDEX `Produto` (`Produto`), INDEX `FK_fornecedor` (`Fornecedor`), INDEX `FK2_Grupo` (`Grupo`) ) COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=163 ; Preciso de uma query que retorne todos os produtos cadastrados e suas respectivas quantidades em estoque. Sendo que o campo "Transacao' presente em tbl_estoque e quem diferencia uma entrada de uma saída de mercadorias. - Meus conhecimentos me levaram até aqui:
      SELECT tbl_estoque.Produto AS Cod_Produto, tbl_produtos.Produto AS Produto, tbl_cat_estoque.Transacao AS Transacao, (case when (tbl_cat_estoque.Transacao like '1%') then sum(tbl_estoque.Quantidade) else 0 end) AS Entradas, (case when (tbl_cat_estoque.Transacao LIKE '2%') then sum(tbl_estoque.Quantidade) else 0 end) AS Saidas from tbl_estoque join tbl_cat_estoque ON (tbl_estoque.Transacao = tbl_cat_estoque.Cod) JOIN tbl_produtos ON (tbl_estoque.Produto = tbl_produtos.Cod) group by tbl_estoque.Transacao; Agradeço toda ajuda que receber.
×

Informação importante

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