alessandro.albuquerque Postado Fevereiro 12, 2018 Denunciar Share Postado Fevereiro 12, 2018 (editado) Pessoal, Eu preciso exibir as linhas que houveram alguma alteração de acordo com a DATA. Segue o código: SELECT * FROM `inventario` WHERE usuario NOT IN (SELECT usuario FROM `inventario` where data='11/01/2018') Obs: Se houver alteração em algum campo de outra coluna não irá exibir. Como posso acrescentar nesse código que exibe qualquer alteração? id ativo tipodeativo marcamodelo status usuario centrodecusto filial data 1 12345678 celular positivo p30 in use alessandro.albuquerque 561308 br04 11/01/2018 2 12344321 celular positivo p30 in use diego.bordini 561308 br01 11/01/2018 3 43211234 celular positivo p30 in use alisson.brito 561308 brn1 11/01/2018 9 87654321 celular positivo p30 in use alessandro.albuquerque 561308 br04 11/01/2018 4 12345678 celular positivo p30 in use carlos.augusto 561308 br04 11/02/2018 5 12344321 celular positivo p30 in use diego.bordini 561308 br01 11/02/2018 6 43211234 celular positivo p30 in use alisson.brito 561308 brn1 11/02/2018 7 87654321 celular positivo p30 in use alessandro.albuquerque 561331 br04 11/02/2018 No exemplo acima, o usuário alessandro.abuquerque mudou o Centro de Custo e exibiu apenas a mudança de usuário. Editado Fevereiro 13, 2018 por alessandro.albuquerque Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alessandro.albuquerque Postado Fevereiro 13, 2018 Autor Denunciar Share Postado Fevereiro 13, 2018 (editado) 2 horas atrás, alessandro.albuquerque disse: Editado Fevereiro 13, 2018 por alessandro.albuquerque Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Fevereiro 13, 2018 Denunciar Share Postado Fevereiro 13, 2018 Pelo que entendi, você quer os registros que não estejam nesta data (NOT IN) SELECT usuario FROM `inventario` where data='11/01/2018' Tente assim: SELECT i1.* FROM `inventario` i1 LEFT JOIN ( SELECT i.usuario FROM `inventario` i WHERE i.data='11/01/2018' ) i2 ON i2.usuario = i1.usuario WHERE i2.usuario IS NULL Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alessandro.albuquerque Postado Fevereiro 13, 2018 Autor Denunciar Share Postado Fevereiro 13, 2018 (editado) Desculpe. Eu não formulei a pergunta corretamente. Deve ter sido o exaustão. Vou explicar o conceito dessa consulta: 1. Existe um inventário mensal com todos os ativos 2. As colunas são id,ativo,tipodeativo,marcamodelo,status,usuario,centrodecusto,filial,data 3. Estou no terceiro mês ou subsequente a ele(quarto, quinto sexto etc...) Como irei consultar a diferença do último inventário, ou seja, a diferença das últimas duas datas? exemplo: id ativo tipodeativo marcamodelo status usuario centrodecusto filial data 1 12345678 celular positivo p30 in use alessandro.albuquerque 561308 br04 11/01/2018 2 12345678 celular positivo p30 in use diego.bordini 561308 br01 11/02/2018 3 12345678 celular positivo p30 in use alisson.brito 561308 brn1 11/03/2018 4 12345678 celular positivo p30 in use alessandro.albuquerque 561341 br04 11/04/2018 5 12345678 celular positivo p30 in use carlos.augusto 561308 br02 11/05/2018 Editado Fevereiro 13, 2018 por alessandro.albuquerque Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alessandro.albuquerque Postado Fevereiro 13, 2018 Autor Denunciar Share Postado Fevereiro 13, 2018 8 horas atrás, Denis Courcy disse: Pelo que entendi, você quer os registros que não estejam nesta data (NOT IN) SELECT usuario FROM `inventario` where data='11/01/2018' Tente assim: SELECT i1.* FROM `inventario` i1 LEFT JOIN ( SELECT i.usuario FROM `inventario` i WHERE i.data='11/01/2018' ) i2 ON i2.usuario = i1.usuario WHERE i2.usuario IS NULL Pensei em futuramente criar um PHP para da um valor das DATA. Então fiz isso, mas as colunas ficam duplicadas. select * from (SELECT * FROM `inventario` WHERE data = '11/01/2018') mes1, (SELECT * FROM `inventario` WHERE data = '11/02/2018') mes2 where mes1.usuario = mes2.usuario Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Fevereiro 15, 2018 Denunciar Share Postado Fevereiro 15, 2018 Em 13/02/2018 at 11:36, alessandro.albuquerque disse: Desculpe. Eu não formulei a pergunta corretamente. Deve ter sido o exaustão. Vou explicar o conceito dessa consulta: 1. Existe um inventário mensal com todos os ativos 2. As colunas são id,ativo,tipodeativo,marcamodelo,status,usuario,centrodecusto,filial,data 3. Estou no terceiro mês ou subsequente a ele(quarto, quinto sexto etc...) Como irei consultar a diferença do último inventário, ou seja, a diferença das últimas duas datas? exemplo: id ativo tipodeativo marcamodelo status usuario centrodecusto filial data 1 12345678 celular positivo p30 in use alessandro.albuquerque 561308 br04 11/01/2018 2 12345678 celular positivo p30 in use diego.bordini 561308 br01 11/02/2018 3 12345678 celular positivo p30 in use alisson.brito 561308 brn1 11/03/2018 4 12345678 celular positivo p30 in use alessandro.albuquerque 561341 br04 11/04/2018 5 12345678 celular positivo p30 in use carlos.augusto 561308 br02 11/05/2018 Ainda não entendi o que você quer. O campo data em sua tabela é a data do inventário? Se é a data do inventario, qual o(s) campo(s) que você quer comparar (status, usuario, centrodecusto,filial)? A alteração, além de ser por data também é por usuário (como você menciona em seu primeiro post deste tópico)? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 alessandro.albuquerque Postado Fevereiro 15, 2018 Autor Denunciar Share Postado Fevereiro 15, 2018 1 hora atrás, Denis Courcy disse: Ainda não entendi o que você quer. O campo data em sua tabela é a data do inventário? Se é a data do inventario, qual o(s) campo(s) que você quer comparar (status, usuario, centrodecusto,filial)? A alteração, além de ser por data também é por usuário (como você menciona em seu primeiro post deste tópico)? A idéia é comparar todas as colunas de acordo com a DATA. Exemplo: id ativo tipodeativo marcamodelo status usuario centrodecusto filial data 1 12345678 celular positivo p30 in use alessandro.albuquerque 561308 br04 11/01/2018 2 87654321 celular positivo p30 in use diego.bordini 561308 br01 11/01/2018 3 12345678 celular positivo p30 in use alessandro.albuquerque 561331 br04 11/03/2018 4 87654321 celular positivo p30 in use carlos.augusto 561308 br02 11/04/2018 Perceba que: O ativo 12345678 foi alterado a coluna usuário,centrodecusto e fial na data 11/04/2018 O ativo 87654321 foi alterado o centrodecusto na data 11/03/2018. select * from (SELECT * FROM `inventario` WHERE data = '$datareferencia') mes1, (SELECT * FROM `inventario` WHERE data = '$dataatual') mes2 where mes1.usuario = mes2.usuario O código acima vai verificar apenas a alteração da coluna usuário de acordo com a data.O que não estou consigo é retornar a alteração de qualquer coluna de acordo com a data. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
alessandro.albuquerque
Pessoal,
Eu preciso exibir as linhas que houveram alguma alteração de acordo com a DATA.
Segue o código:
Obs: Se houver alteração em algum campo de outra coluna não irá exibir. Como posso acrescentar nesse código que exibe qualquer alteração?
No exemplo acima, o usuário alessandro.abuquerque mudou o Centro de Custo e exibiu apenas a mudança de usuário.
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.