select codigo_empresa_salarios, ano_mes, salario, codigo_funcionario_salarios from salarios where codigo_empresa_salarios = '123321' and ano_mes <= '200903' group by codigo_funcionario_salarios order by ano_mes desc
retorna o numero de registros corretamente, ou seja, 2 registros, mas retorna o valor de ano_mes como 200902. Eu entendo que isto esta errado, pois note que na instrução SQL especifiquei order by ano_mes desc, ou seja do maior para o menor, então entendo que deveria retornar o ano de 200903, mas retorna o ano de 200902.
então mudei um pouco a instrução SQL, ficou assim:
select codigo_empresa_salarios, ano_mes, salario, codigo_funcionario_salarios from salarios where codigo_empresa_salarios = '123321' and ano_mes <= '200903' group by codigo_funcionario_salarios, ano_mes order by ano_mes desc
Esta instrução retornou corretamente o ano_mes, ou seja 200903, so que retorna o numero de registros errado, retorna 4 registros. No meu entender deveria retornar apenas 2 registros.
Bem, para resolver esta questão momentaneamente, adotei o ultimo caso, como esta retornando o dobro de registros, estou dividindo o resultado por 2, mas como isto é uma martelada no programa, preciso mudar isto...
Pergunta
Rudimar
Em um banco de dados tenho os seguintes dados:
Registro 1:
codigo_empresa = 123321
código_funcionario = 12314
ano_mes = 200902
Registro 2:
codigo_empresa = 123321
código_funcionario = 12315
ano_mes = 200902
Registro 3:
codigo_empresa = 123321
código_funcionario = 12314
ano_mes = 200903
Registro 4:
codigo_empresa = 123321
código_funcionario = 12315
ano_mes = 200903
Agora veja a seguinte instrução SQL:
retorna o numero de registros corretamente, ou seja, 2 registros, mas retorna o valor de ano_mes como 200902. Eu entendo que isto esta errado, pois note que na instrução SQL especifiquei order by ano_mes desc, ou seja do maior para o menor, então entendo que deveria retornar o ano de 200903, mas retorna o ano de 200902.então mudei um pouco a instrução SQL, ficou assim:
Esta instrução retornou corretamente o ano_mes, ou seja 200903, so que retorna o numero de registros errado, retorna 4 registros. No meu entender deveria retornar apenas 2 registros.
Bem, para resolver esta questão momentaneamente, adotei o ultimo caso, como esta retornando o dobro de registros, estou dividindo o resultado por 2, mas como isto é uma martelada no programa, preciso mudar isto...
alguém teria uma luz ai para esta questão....
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados