Lo que tengo es básicamente un problema que se resuelve fácilmente con varias tablas, pero solo tengo una tabla para hacerlo.SQL - SELECCIONAR MAX() y el campo correspondiente
Tenga en cuenta la siguiente tabla de base de datos
UserID UserName EmailAddress Source
3K3S9 Ben [email protected] user
SF13F Harry [email protected] 3rd_party
SF13F Harry [email protected] user
76DSA Lisa [email protected] user
OL39F Nick [email protected] 3rd_party
8F66S Stan [email protected] user
necesito para seleccionar todos los campos, pero sólo que cada usuario una vez junto con uno de sus direcciones de correo electrónico (el "mayor" uno según lo determinado por el MAX (función)) Este es el resultado que busco ...
UserID UserName EmailAddress Source
3K3S9 Ben [email protected] user
SF13F Harry [email protected] 3rd_party
76DSA Lisa [email protected] user
OL39F Nick [email protected] 3rd_party
8F66S Stan [email protected] user
Como se puede ver, "Harry" sólo se muestra una vez con su dirección de correo electrónico "más alto" del correcponding "fuente"
Actualmente lo que está sucediendo es que estamos agrupados en UserID, UserName y usando MAX() para EmailAddress y Source, pero el máximo de esos dos campos no siempre coinciden, deben ser del mismo registro.
He intentado con otro proceso uniéndome a la tabla, pero solo he logrado obtener la dirección de correo electrónico correcta pero no la "fuente" correspondiente para esa dirección.
Cualquier ayuda sería muy apreciada como he pasado demasiado tiempo tratando de resolver esto ya :)
¿Tiene una columna adicional con una clave principal definida? ¿El par (UserId, EmailAddress) es único? –