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'groupby 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...
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.
Pessoal, bom dia,.. por gentileza alguem pode me dar uma ajuda:
Preciso montar uma consulta que funcione da seguinte forma:
que traz o seguinte resultado:
* hora ponto é um campo que estou importando de um txt de relogio de ponto
E outra query com a seguinte estrutura e resultado :
* 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:
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