Bom dia, amigos do Forum.
Estou com um problema em uma consulta que não consigo solucionar...
Nela te uma campo calculado [RelMorCom], que é a Relação entre dois campos de uma tabela Campo1 é [NumMoradores] e Campo2 é [NumComodos]. A relação é a divisão entre o Numero de Moradores pelo numero de Comodos da casa.
Tem outro campo calculado [PtsRelMorCom] que se baseia no valor do campo [RelMorCom]. Se esse for menor que 1 [PtsMorCom] = 0; se for =1 [PtsMorCom]=2 e se for maior que 1 [PtsMorCom]=3.
Porém, ao executar a consulta ela pede o Valor do parâmetro RelMorCom. Não consegui descobrir porque...
Alguém pode me ajudar? A consulta é essa abaixo:
SELECT Tbl_ACS.ACS, Tbl_Titular.NomeTitular, Tbl_Titular.Prontuário, Tbl_CalculaRiscoCoelhoSavassi.CódigoRiscoCoelhoSavassi, Tbl_CalculaRiscoCoelhoSavassi.DataRiscoCoelhoSavassi, Tbl_CalculaRiscoCoelhoSavassi.Acamado, Tbl_CalculaRiscoCoelhoSavassi.DeficFisica, Tbl_CalculaRiscoCoelhoSavassi.DeficMental, Tbl_CalculaRiscoCoelhoSavassi.BaixasCondSaneam, Tbl_CalculaRiscoCoelhoSavassi.DesnutrGrave, Tbl_CalculaRiscoCoelhoSavassi.Drogas, Tbl_CalculaRiscoCoelhoSavassi.Desemprego, Tbl_CalculaRiscoCoelhoSavassi.Analfab, Tbl_CalculaRiscoCoelhoSavassi.Menores6meses, Tbl_CalculaRiscoCoelhoSavassi.Hipertensao, Tbl_CalculaRiscoCoelhoSavassi.Diabetes, Tbl_CalculaRiscoCoelhoSavassi.NumMoradores, Tbl_CalculaRiscoCoelhoSavassi.NumComodos, [Acamado]*3 AS PtsAcamado, [DeficFisica]*3 AS PtsDeficFisica, [DeficMental]*3 AS PtsDeficMental, IIf([BaixasCondSaneam]="Sim",3,0) AS PtsBaixasCondSaneam, [DesnutrGrave]*3 AS PtsDesnutrGrave, [Drogas]*2 AS PtsDrogas, [Desemprego]*2 AS PtsDesemprego, [Analfab]*1 AS PtsAnalfab, [Menores6meses]*1 AS PtsMenores6meses, [I70anosOuMais]*1 AS PtsI70anosOuMais, [Hipertensao]*1 AS PtsHipertensao, [Diabetes]*1 AS PtsDiabetes, [NumMoradores]/[NumComodos] AS RelMorCom, IIf([RelMorCom]>1,3,IIf([RelMorCom]=1,2,0)) AS PtsRelMorCom
FROM (Tbl_ACS INNER JOIN Tbl_Titular ON Tbl_ACS.CódigoACS = Tbl_Titular.CódigoACS) LEFT JOIN Tbl_CalculaRiscoCoelhoSavassi ON Tbl_Titular.CódigoTitular = Tbl_CalculaRiscoCoelhoSavassi.CódigoTitular
GROUP BY Tbl_ACS.ACS, Tbl_Titular.NomeTitular, Tbl_Titular.Prontuário, Tbl_CalculaRiscoCoelhoSavassi.CódigoRiscoCoelhoSavassi, Tbl_CalculaRiscoCoelhoSavassi.DataRiscoCoelhoSavassi, Tbl_CalculaRiscoCoelhoSavassi.Acamado, Tbl_CalculaRiscoCoelhoSavassi.DeficFisica, Tbl_CalculaRiscoCoelhoSavassi.DeficMental, Tbl_CalculaRiscoCoelhoSavassi.BaixasCondSaneam, Tbl_CalculaRiscoCoelhoSavassi.DesnutrGrave, Tbl_CalculaRiscoCoelhoSavassi.Drogas, Tbl_CalculaRiscoCoelhoSavassi.Desemprego, Tbl_CalculaRiscoCoelhoSavassi.Analfab, Tbl_CalculaRiscoCoelhoSavassi.Menores6meses, Tbl_CalculaRiscoCoelhoSavassi.Hipertensao, Tbl_CalculaRiscoCoelhoSavassi.Diabetes, Tbl_CalculaRiscoCoelhoSavassi.NumMoradores, Tbl_CalculaRiscoCoelhoSavassi.NumComodos, [Acamado]*3, [DeficFisica]*3, [DeficMental]*3, IIf([BaixasCondSaneam]="Sim",3,0), [DesnutrGrave]*3, [Drogas]*2, [Desemprego]*2, [Analfab]*1, [Menores6meses]*1, [I70anosOuMais]*1, [Hipertensao]*1, [Diabetes]*1, [NumMoradores]/[NumComodos], IIf([RelMorCom]>1,3,IIf([RelMorCom]=1,2,0))
HAVING (((Tbl_ACS.ACS) Like '*'+[Digite o Nome do Agente de Saúde: (Digite * para todos os ACS)]+'*'))
ORDER BY Tbl_ACS.ACS, Tbl_Titular.NomeTitular;
Desconfio que o erro esteja na expressão:
PtsRelMorCom: SeImed([RelMorCom]>1;3;SeImed([RelMorCom]=1;2;0))
Obrigado.
Estou com um problema em uma consulta que não consigo solucionar...
Nela te uma campo calculado [RelMorCom], que é a Relação entre dois campos de uma tabela Campo1 é [NumMoradores] e Campo2 é [NumComodos]. A relação é a divisão entre o Numero de Moradores pelo numero de Comodos da casa.
Tem outro campo calculado [PtsRelMorCom] que se baseia no valor do campo [RelMorCom]. Se esse for menor que 1 [PtsMorCom] = 0; se for =1 [PtsMorCom]=2 e se for maior que 1 [PtsMorCom]=3.
Porém, ao executar a consulta ela pede o Valor do parâmetro RelMorCom. Não consegui descobrir porque...
Alguém pode me ajudar? A consulta é essa abaixo:
SELECT Tbl_ACS.ACS, Tbl_Titular.NomeTitular, Tbl_Titular.Prontuário, Tbl_CalculaRiscoCoelhoSavassi.CódigoRiscoCoelhoSavassi, Tbl_CalculaRiscoCoelhoSavassi.DataRiscoCoelhoSavassi, Tbl_CalculaRiscoCoelhoSavassi.Acamado, Tbl_CalculaRiscoCoelhoSavassi.DeficFisica, Tbl_CalculaRiscoCoelhoSavassi.DeficMental, Tbl_CalculaRiscoCoelhoSavassi.BaixasCondSaneam, Tbl_CalculaRiscoCoelhoSavassi.DesnutrGrave, Tbl_CalculaRiscoCoelhoSavassi.Drogas, Tbl_CalculaRiscoCoelhoSavassi.Desemprego, Tbl_CalculaRiscoCoelhoSavassi.Analfab, Tbl_CalculaRiscoCoelhoSavassi.Menores6meses, Tbl_CalculaRiscoCoelhoSavassi.Hipertensao, Tbl_CalculaRiscoCoelhoSavassi.Diabetes, Tbl_CalculaRiscoCoelhoSavassi.NumMoradores, Tbl_CalculaRiscoCoelhoSavassi.NumComodos, [Acamado]*3 AS PtsAcamado, [DeficFisica]*3 AS PtsDeficFisica, [DeficMental]*3 AS PtsDeficMental, IIf([BaixasCondSaneam]="Sim",3,0) AS PtsBaixasCondSaneam, [DesnutrGrave]*3 AS PtsDesnutrGrave, [Drogas]*2 AS PtsDrogas, [Desemprego]*2 AS PtsDesemprego, [Analfab]*1 AS PtsAnalfab, [Menores6meses]*1 AS PtsMenores6meses, [I70anosOuMais]*1 AS PtsI70anosOuMais, [Hipertensao]*1 AS PtsHipertensao, [Diabetes]*1 AS PtsDiabetes, [NumMoradores]/[NumComodos] AS RelMorCom, IIf([RelMorCom]>1,3,IIf([RelMorCom]=1,2,0)) AS PtsRelMorCom
FROM (Tbl_ACS INNER JOIN Tbl_Titular ON Tbl_ACS.CódigoACS = Tbl_Titular.CódigoACS) LEFT JOIN Tbl_CalculaRiscoCoelhoSavassi ON Tbl_Titular.CódigoTitular = Tbl_CalculaRiscoCoelhoSavassi.CódigoTitular
GROUP BY Tbl_ACS.ACS, Tbl_Titular.NomeTitular, Tbl_Titular.Prontuário, Tbl_CalculaRiscoCoelhoSavassi.CódigoRiscoCoelhoSavassi, Tbl_CalculaRiscoCoelhoSavassi.DataRiscoCoelhoSavassi, Tbl_CalculaRiscoCoelhoSavassi.Acamado, Tbl_CalculaRiscoCoelhoSavassi.DeficFisica, Tbl_CalculaRiscoCoelhoSavassi.DeficMental, Tbl_CalculaRiscoCoelhoSavassi.BaixasCondSaneam, Tbl_CalculaRiscoCoelhoSavassi.DesnutrGrave, Tbl_CalculaRiscoCoelhoSavassi.Drogas, Tbl_CalculaRiscoCoelhoSavassi.Desemprego, Tbl_CalculaRiscoCoelhoSavassi.Analfab, Tbl_CalculaRiscoCoelhoSavassi.Menores6meses, Tbl_CalculaRiscoCoelhoSavassi.Hipertensao, Tbl_CalculaRiscoCoelhoSavassi.Diabetes, Tbl_CalculaRiscoCoelhoSavassi.NumMoradores, Tbl_CalculaRiscoCoelhoSavassi.NumComodos, [Acamado]*3, [DeficFisica]*3, [DeficMental]*3, IIf([BaixasCondSaneam]="Sim",3,0), [DesnutrGrave]*3, [Drogas]*2, [Desemprego]*2, [Analfab]*1, [Menores6meses]*1, [I70anosOuMais]*1, [Hipertensao]*1, [Diabetes]*1, [NumMoradores]/[NumComodos], IIf([RelMorCom]>1,3,IIf([RelMorCom]=1,2,0))
HAVING (((Tbl_ACS.ACS) Like '*'+[Digite o Nome do Agente de Saúde: (Digite * para todos os ACS)]+'*'))
ORDER BY Tbl_ACS.ACS, Tbl_Titular.NomeTitular;
Desconfio que o erro esteja na expressão:
PtsRelMorCom: SeImed([RelMorCom]>1;3;SeImed([RelMorCom]=1;2;0))
Obrigado.