Tengo un "TBL" tabla que se parece a esto:Seleccione la primera fila coincidente
prod | cust | qty
p1 | c1 | 5
p1 | c2 | 10
p2 | c1 | 2
p3 | c2 | 8
Lo que necesito es una lista distinta de pares de productos y clientes, pero sólo el primer cliente si el producto se vende a más de un cliente En otras palabras los resultados tienen que tener este aspecto:
prod | cust
p1 | c1
p2 | c1
p3 | c2
He intentado esto en todas las direcciones que se me ocurre, pero no acabo de obtener el resultado correcto. Claramente, ni el distinto ni el grupo por (por sí mismos) funcionarán, ya que ambos devolverán la fila p1, c2.
yo encontramos este question que es un partido muy cerrado, pero no puedo encontrar la manera de volver a escribir para conseguir que se haga lo que yo necesito.
Para colmo, actualmente esto tiene que funcionar en Access 2007 o posterior, pero en algún momento futuro también deberá funcionar en MySQL.
Crédito adicional a cualquier persona que también una los resultados a la tabla de clientes para que pueda buscar el nombre legible por humanos desde el código del cliente, p. c1 => Fred Bloggs Llaves
¿Cómo se define "primer cliente"? ¿Hay algún campo de fecha que lo haga explícito que no se muestra? –
Defino "primero" como el que devuelva la consulta. Me gustaría que me devolvieran p1, c1 o p1, c2. Simplemente no puedo hacer frente a que ambos sean devueltos (porque el código del producto se está utilizando en otra unión y no quiero duplicados). No hay otros campos útiles en la tabla tbl. – wobblycogs
OK, leí este comentario después de publicar una respuesta, esto no tiene sentido, ¿quiere el "primer" cliente, pero realmente no le importa quién es el "primer" cliente o cómo se determina? No estoy escribiendo sus requisitos, pero realmente quiere resultados esencialmente aleatorios con el tiempo?!? –