Ir para conteúdo

POWERED BY:

Arquivado

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

Beto_Souza123

[Resolvido] Varias consultas Sql em uma mesma tabela

Recommended Posts

Olá,

 

Tenho uma tabela com os seguintes campos: Clientes, Tipo de Exame (com varios exames) e Data... Preciso fazer uma consulta em um determinado periodo sendo que somente irei utilizar no Tipo Exame dois exames - Admissional e Demissional. Gerando uma contagem destes exames COUNT. Até ai tudo bem. O problema é que eu preciso fazer a diferença destes dois exames referentes ao mesmo cliente (só poderá aparecer o Cliente uma unica vez) e ordenar pela maior diferença.

 

Meu Sql ficou assim:

 

<%

dim SQL

dim datade

dim dataate

dim examead

dim examede

 

datade = request.querystring("datain")

dataate = request.querystring("datafim")

 

examead = "ADMISSIONAL"

examede = "DEMISSIONAL"

 

 

 

SQL = "SELECT COUNT(case when tipoexame = '" & examead & "' then '" & examead & "' else null end) AS exame12, COUNT (case when tipoexame = '" & examede & "' then '" & examede & "' else null end) AS exame10, COUNT (case when tipoexame = '" & examede & "' then '" & examede & "' else null end) - COUNT(case when tipoexame = '" & examead & "' then '" & examead & "' else null end) AS diferenca, pcmso.codcli, clientes.apelido FROM pcmso INNER JOIN clientes ON pcmso.CODCLI = clientes.codcli WHERE tipoexame LIKE '%MISSIONAL' AND data BETWEEN '" & datade & "' and '" & dataate & "' GROUP BY clientes.apelido, pcmso.CODCLI, clientes.codcli, pcmso.tipoexame ORDER BY apelido ASC "

 

%>

 

Consulta que aparece ERRADA

 

Cliente Demissional Admissional Diferença

Cliente x ----5------ ----0------ 5

Cliente x ----0------ ----3------ -3

Cliente y ----1------ ----0------ 1

Cliente y ----0------ ----4------ -4

 

Consulta que eu gostaria que aparecesse CERTA

 

Consulta que aparece:

 

Cliente Demissional Admissional Diferença

Cliente x ----5------ ----3------ 2

Cliente y ----1------ ----4------ -3

 

 

Tudo deu certo. Acontece que a consulta coloca as empresas de forma separada, ou seja, aparece em uma linha determinada empresa somente o resultado Admissional e na outra a mesma empresa, mas com o resultado demissional. Preciso que apareça na mesma linha a soma dos admissionais depois a soma dos demissionais e em seguida a diferença entre eles no mesmo periodo.

 

Outra coisa: quando faço a busca pelos resultados tenho que colocar a data no formato americano - mês/dia/ano. Tem como deixar no formato brasileiro - dia/mes/ano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Eriva_br, valeu pela resposta. Agora deu certo! O problema ainda está na data. Não funciona da maneira DD/MM/AAAA, somente MM/DD/AAAA. Até vi o link que você mandou, mas não consegui fazer SET DATE FORMAT DMY. Você poderia me dar um exemplo? A consulta está em intervalo de duas datas neste formato DD/MM/AAAA.

 

Erro ao fazer a consulta por exemplo com estas datas Data Inicial = 25/01/2011 e Data Final = 26/01/2011

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

 

[Microsoft][ODBC SQL Server Driver]

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

 

/cliente_sistema/cliente2bd1.asp, line 117

 

AGRADEÇO DESTE JÁ

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim:

SQL = "SET DATEFORMAT DMY SELECT COUNT(.....

 

set tiver utilizando asp.net, adicione a tag globalization que o .net irá controlar isso independente da configuração do Banco ou configurações regionais, com isso nem precisa do SET DATEFORMAT DMY

<globalization culture="pt-BR" uiCulture="pt-BR"/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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