Ver Mensaje Individual
  #1  
Antiguo 25-09-2015
Avatar de rretamar
[rretamar] rretamar is offline
Miembro Premium
 
Registrado: ago 2006
Ubicación: San Francisco, Córdoba, Argentina
Posts: 1.168
Reputación: 22
rretamar Va camino a la famarretamar Va camino a la fama
Question Totales...pero en columnas

Hola.
Una consulta para los más conocedores de SQL. Supongamos que tengo la siguiente tabla:

ID es un número único que identifica a un estudio (por ejemplo ecografías. ecografía 1, 2, 3, etc). Anatomía es un número que identifica el lugar del cuerpo donde se hace el estudio (por ejemplo: 1=abdomen, 2=hombro, 3=cuello, etc. etc.)

Entonces a medida que hacemos estudios, la tabla se va poblando de una forma como esta, nada raro:

Código:
ID   Anatomia 
1     4
2     2           
3     2
4     5
5     3
...
De esta manera es muy fácil (usando group by) hacer un "ranking" de anatomías, para saber que tipo de zonas son las que más estudios tuvieron.

Pero un día el médico ecografista dice: cuidadín, que en una sola sesión al paciente se le pueden hacer hasta un máximo de cinco ecografías en zonas distintas.

Entonces la estructura de la tabla se hace así:

Código:
ID  Anatomia1  Anatomia2  Anatomia3  Anatomia4  Anatomia5
1   2              3
2   6
3   1              3               2              5
4   2   
...
Lo que permite que en un único registro se puedan ingresar varias anatomías para un mismo estudio.

En este caso, cada registro (que representa una sesión de escografía, guarda los datos de hasta cinco anatomías)

El problema en este caso es el agrupamiento, ya que hasta donde tengo entendido, no puedo hacer un group-by si los datos están dispuestos de esa forma. Un solución es crear una tabla temporal similar a la primera...volcando los datos de la segunda....y recién ahí calcular el "ranking" de anatomías.

¿ Se les ocurre alguna idea mejor que crear una tabla temporal ?.

Saludos !
__________________
Lazarus Codetyphon : Desarrollo de aplicaciones Object Pascal, libre y multiplataforma.
Responder Con Cita