Colocar Resposta 
 
Avaliação do Tópico:
  • 0 votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
SQL BD [Resolvido]
01-04-2010, 11:52 (Esta mensagem foi modificada pela última vez a: 05-04-2010 14:51 por progster.)
Mensagem: #1
SQL BD [Resolvido]
Boas.

Surgiu-me outra situação relativamente á mesma BD, que não estou a conseguir resolver, é o seguinte:

Tenho uma lista de campos do tipo SIM/NÃO, que preciso cujo output seja númerico, a questão é como é que coloco estes critérios no seguinte código?, ou seja, precioso de saber quantas pessoas retornam com o seguinte output, mais os campos do tipo SIM/NÃO

SELECT COUNT([Registo de Clientes].Nome) AS [*Número de pessoas*]
FROM [Registo de Clientes]
WHERE ((([Registo de Clientes].Idade) Like "*" & [Introduza a idade] & "*") AND (([Registo de Clientes].[Habilitações Literarias]) Like "*" & [Introduza as HL] & "*") AND (([Registo de Clientes].Sexo) Like "*" & [Introduza o Sexo] & "*"));

Desde já agradeço qualquer ajuda.

Cumprimentos.

Progster
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
01-04-2010, 15:13
Mensagem: #2
RE: SQL BD
Aí tens de fazer o GROUP BY.

SELECT COUNT([Registo de Clientes].Nome) AS [*Número de pessoas*], [Registo de Clientes].CAMPO_SIMNAO
FROM [Registo de Clientes]
WHERE ((([Registo de Clientes].Idade) Like "*" & [Introduza a idade] & "*") AND (([Registo de Clientes].[Habilitações Literarias]) Like "*" & [Introduza as HL] & "*") AND (([Registo de Clientes].Sexo) Like "*" & [Introduza o Sexo] & "*"));
GROUP BY [Registo de Clientes].CAMPO_SIMNAO

Assim agrupas o teu resultado pelo campo SIMNAO, indicando o total de registos encontrados para cada uma.
Penso que seja isto ... certo?
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
05-04-2010, 09:02 (Esta mensagem foi modificada pela última vez a: 05-04-2010 09:30 por progster.)
Mensagem: #3
RE: SQL BD
Bom dia.

Antes de mais peço desculpa por só agora estar a responder. Meteu-se a Pascoa pelo meio e aproveitei para repor energias.

Vou experimentar e já digo alguma coisa.
Houve progressos, ou seja, com este código:

SELECT Count([Registo de Clientes].Nome) AS [*Número de pessoas*], [Registo de Clientes].[1º Emprego], [Registo de Clientes].[Novo Emprego], [Registo de Clientes].Outros
FROM [Registo de Clientes]
WHERE ((([Registo de Clientes].Idade) Like "*" & [Introduza a idade] & "*") AND (([Registo de Clientes].[Habilitações Literarias]) Like "*" & [Introduza as HL] & "*") AND (([Registo de Clientes].Sexo) Like "*" & [Introduza o Sexo] & "*"))
GROUP BY [Registo de Clientes].[1º Emprego], [Registo de Clientes].[Novo Emprego], [Registo de Clientes].Outros;

o output foi o número de pessoas que correspondem ás condições que estou a pedir (Idade, Habilitações literárias, Sexo), mas relativamente aos campos do tipo sim/não não me aparecem quantos estão a sim.
SELECT Count([Registo de Clientes].Nome) AS [*Número de pessoas*], Count([Registo de Clientes].[1º Emprego]) AS [ContarDe1º Emprego], Count([Registo de Clientes].[Novo Emprego]) AS [ContarDeNovo Emprego], Count([Registo de Clientes].Outros) AS ContarDeOutros
FROM [Registo de Clientes]
WHERE ((([Registo de Clientes].Idade) Like "*" & [Introduza a idade] & "*") AND (([Registo de Clientes].[Habilitações Literarias]) Like "*" & [Introduza as HL] & "*") AND (([Registo de Clientes].Sexo) Like "*" & [Introduza o Sexo] & "*"));

Com este código, o output que me retorna são dois registos. Mas para cada um destes registos também me aparece para os campos do tipo sim/não 2,2,2, e oi que derevia retornar era 1,2,1

Não sei se me expliquei bem, qualquer coisa digam que eu volta a explicar.

Progster
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
05-04-2010, 11:04 (Esta mensagem foi modificada pela última vez a: 05-04-2010 12:37 por progster.)
Mensagem: #4
RE: SQL BD
SELECT Count([Registo de Clientes].Nome) AS [*Número de pessoas*], Sum([Registo de Clientes].[1º Emprego]) AS [SomaDe1º Emprego], Sum([Registo de Clientes].[Novo Emprego]) AS [SomaDeNovo Emprego], Sum([Registo de Clientes].Outros) AS SomaDeOutros, Sum([Registo de Clientes].RSI) AS SomaDeRSI, Sum([Registo de Clientes].[Subsidio de Desemprego]) AS [SomaDeSubsidio de Desemprego], Sum([Registo de Clientes].[Carta de Condução]) AS [SomaDeCarta de Condução]
FROM [Registo de Clientes]
WHERE ((([Registo de Clientes].Idade) Like "*" & [Introduza a idade] & "*") AND (([Registo de Clientes].[Habilitações Literarias]) Like "*" & [Introduza as HL] & "*") AND (([Registo de Clientes].Sexo) Like "*" & [Introduza o Sexo] & "*"));

Com este código já me aparece aquilo que quero, ou seja, para os campos do tipo sim/não já me aparecem numericamente quais são os que têm o sinal de visto (campos do tipo sim), mas agora aparecem-me valores negativos.

Alguém me pode dizer como é que passo esses valores para positivos?

Agradeço qualquer ajuda que me possam dar.

Cumprimentos.

A Plataforma que estou a utilizar é o Access 2003.

Progster
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
05-04-2010, 14:50
Mensagem: #5
RE: SQL BD
Já consegui resolver a situação.

Cumprimentos.

Progster
Procurar todas as mensagens deste utilizador
Citar esta mensagem numa resposta
Colocar Resposta 


Saltar Fórum:


Utilizadores a ver este tópico: 1 Visitante(s)