Access - Consulta con Access

 
Vista:

Consulta con Access

Publicado por Funack (4 intervenciones) el 26/08/2004 13:01:19
Estoy haciendo una consulta en una base de datos Access 2000. Hay un registro que se llama Servicio. Pues bien, dos valores de este campo, en concreto los que se llaman "COT" y "TOR", han pasado al ser el mismo. En dicha consulta se hacen una serie de sumas y promedios. ¿De que manera tengo que poner la consulta, para que estos dos valores me los considere iguales? Porque si no, al lanzar la consulta, no me suma los valores que corresponden al mismo, ya que estan agrupados (Group by), por otro campo, que se llama DRG.
Espero haberme explicado, asi que os pongo la sentencia SQL a ver si os sirve de ayuda :

SELECT DISTINCTROW Episodis.ServeiAlta, DRG_HC.DRG, DRG_HC.Descripcio, Count(Episodis.NHC) AS Altes, Sum(Episodis.Estades) AS Est, DRG_HC.Pes, DRG_HC.MDC, [Altes]*[Pes] AS [Altes*Pes], [Est]/[Altes] AS EM, DRG_HC.EM AS EMStd
FROM DRG_HC INNER JOIN Episodis ON DRG_HC.DRG = Episodis.DRG_HC
WHERE (((Episodis.DataAlta)>=[DataInici] And (Episodis.DataAlta)<=[DataFinal]))
GROUP BY Episodis.ServeiAlta, DRG_HC.DRG, DRG_HC.Descripcio, DRG_HC.Pes, DRG_HC.MDC, DRG_HC.EM
HAVING (((Episodis.ServeiAlta)=[Servei]));

Mucha gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Consulta con Access

Publicado por Alejandro (4142 intervenciones) el 09/05/2023 22:37:48
Para considerar los valores "COT" y "TOR" como iguales en tu consulta, puedes utilizar la cláusula `IIf` en la cláusula `GROUP BY`. Aquí tienes un ejemplo de cómo puedes modificar tu consulta para lograrlo:

1
2
3
4
5
SELECT Episodis.ServeiAlta, IIf(Episodis.DRG_HC IN ('COT', 'TOR'), 'COT/TOR', DRG_HC.DRG) AS DRG, DRG_HC.Descripcio, Count(Episodis.NHC) AS Altes, Sum(Episodis.Estades) AS Est, DRG_HC.Pes, DRG_HC.MDC, [Altes]*[Pes] AS [Altes*Pes], [Est]/[Altes] AS EM, DRG_HC.EM AS EMStd
FROM DRG_HC INNER JOIN Episodis ON DRG_HC.DRG = Episodis.DRG_HC
WHERE (((Episodis.DataAlta)>=[DataInici] And (Episodis.DataAlta)<=[DataFinal]))
GROUP BY Episodis.ServeiAlta, IIf(Episodis.DRG_HC IN ('COT', 'TOR'), 'COT/TOR', DRG_HC.DRG), DRG_HC.Descripcio, DRG_HC.Pes, DRG_HC.MDC, DRG_HC.EM
HAVING (((Episodis.ServeiAlta)=[Servei]));

En esta modificación, se utiliza la función `IIf` para evaluar si el valor de `Episodis.DRG_HC` es "COT" o "TOR". Si es así, se asigna el valor "COT/TOR" a la columna DRG en la cláusula `GROUP BY`. De lo contrario, se utiliza el valor normal de `DRG_HC.DRG`. Esto agrupará los registros que tengan "COT" y "TOR" juntos bajo el valor "COT/TOR".

Espero que esto resuelva tu problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar