raelpsf 0 Denunciar post Postado Abril 29, 2013 x = 10.5832 Isso é minutos?? Se sim.. tenho 2 dúvidas.. 1) Ele verifica só os registros, entre o primeiro e o último né? Mas no caso de mais dias.. por ex.. um registro acabando as 18:00 e começando no outro dia as 09:00.. ele não vai ver um espação gigante? 2) Teria como no cálculo, subrair a 01 hora de almoço do funcionário? pois se não der... acho que influencia tb no resultado.. não? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 29, 2013 Isso é minutos?? Sim 1) Ele verifica só os registros, entre o primeiro e o último né? Mas no caso de mais dias.. por ex.. um registro acabando as 18:00 e começando no outro dia as 09:00.. ele não vai ver um espação gigante? Diferença entre as data/hora , qualquer que seja ela. Calculando em minutos 2) Teria como no cálculo, subrair a 01 hora de almoço do funcionário? pois se não der... acho que influencia tb no resultado.. não? bastaria subtrair 60 minutos da diferença, mas isto remete a uma coisa , isto talvez deva ser agrupado por funcionário... o que muda tudo pois a sequencia anterior não deve ser a do mesmo id_user .... a jogada do id -1 não funciona ... a query calculou a média de minutos entre os lançamento sem levar em conta o id_user ============== vou pensar uma solução simples com o id_user , veja se vc imagina algo .... Compartilhar este post Link para o post Compartilhar em outros sites
raelpsf 0 Denunciar post Postado Abril 30, 2013 Puts, pior que ver com Id-user seria bacana msm.. pois eu iria colocar isso justamente no relatório dos usuários.. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 30, 2013 Creio que seja isto ... SELECT i1.id_user,avg(24 * 60 * (DATEDIFF(i2.data,i1.data))) x FROM INTERACOES I1, INTERACOES I2 WHERE i1.id_user = i2.id_user and i1.id < i2.id AND i1.data >= DATE_SUB(NOW(),INTERVAL 31 DAY) AND I2.DATA = (SELECT MAX(I3.DATA) FROM INTERACOES I3 WHERE i3.id_user = i2.id_user and i3.data < i1.data) AND I1.DATA IS NOT NULL AND i2.DATA IS NOT NULL group by i1.id_user Compartilhar este post Link para o post Compartilhar em outros sites
raelpsf 0 Denunciar post Postado Abril 30, 2013 Tá rodando a uns 2 minutos e não sai do "carregando".. na primeira tentativa deu a msm coisa.. to executando direto no banco... Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 30, 2013 Não deve ser muito rápida mesmo. A tabela tem índice ? Compartilhar este post Link para o post Compartilhar em outros sites
raelpsf 0 Denunciar post Postado Abril 30, 2013 Não tem não.. como faço para criar um? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 30, 2013 http://dev.mysql.com/doc/refman/5.0/en/create-index.html Atente ao Storage Engine Compartilhar este post Link para o post Compartilhar em outros sites
raelpsf 0 Denunciar post Postado Abril 30, 2013 Cara, tentei de novo 15 minutos e continua carregando e a planilha nem tem tantas linhas assim.. Eu estava pensando.. não tem como fazer algo do tipo... SELECT i1.id_user,avg(24 * 60 * (DATEDIFF(i2.data,i1.data))) x FROM INTERACOES I1, INTERACOES I2 WHERE i1.id_user = i2.id_user and i1.id < i2.id AND i1.data >= DATE_SUB(NOW(),INTERVAL 31 DAY) AND I2.DATA = (SELECT MAX(I3.DATA) FROM INTERACOES I3 WHERE i3.id_user = 'NOME DO FUNCIONARIO') AND I1.DATA IS NOT NULL AND i2.DATA IS NOT NULL group by i1.id_user Pois fazendo assim, retornou id_user = NOME DO FUNCIONARIO x = 21879.5604 Tá certo isso ou fiz cagada? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Abril 30, 2013 SELECT i1.id_user,avg(24 * 60 * (DATEDIFF(i2.data,i1.data))) x FROM INTERACOES I1, INTERACOES I2 WHERE i1.id_user = <codogo user> and i1.id_user = i2.id_user and i1.id < i2.id AND i1.data >= DATE_SUB(NOW(),INTERVAL 31 DAY) AND I2.DATA = (SELECT MAX(I3.DATA) FROM INTERACOES I3 WHERE i3.id_user = i2.id_user and i3.data < i1.data) AND I1.DATA IS NOT NULL AND i2.DATA IS NOT NULL group by i1.id_user Compartilhar este post Link para o post Compartilhar em outros sites