El principal problema que te veo es que pierdes de vista lo que realmente te piden, y por ello te pones a buscar cosas que no están relacionadas.
El ejercicio en realidad es simple:
Mostrar los clientes que hayan comprado el plato más caro
de un determinado periodo de tiempo.
Hay tes cosas que debes determinar para resolverlo:
1) La lista de clientes que compraron algo en ese período.
2) La lista de platos comprados durante ese período.
3) El plato más caro vendido en ese período.
No importa si es el mas caro de todos, o cómo se llama el plato, ni tampoco interesa en la consulta la cantidad de veces que cada cliente compró ese mismo plato. Ninguna de esas cosas se está preguntando
en ese caso.
Por eso digo que pierdes de perspectiva lo que realmente te preguntan.
En primer lugar, veamos la lista de clientes:
Eso determina los clientes a los que se facturó, sin importar cuándo fue.
Eso devuelve sólo las que corresponden a un rango de fechas (eso ya lo habías hecho, ¿por qué no lo tomaste de nuevo?).
Si quieres saber el listado de platos, necesitas el detalle de la factura:
Con el detalle de lafactura estás obteniendo (aunque no es necesario mostrarlo porque no lo pide) el co_plato, por lo que bien puedes buscar uno sólo o muchos.
Un sólo plato
Más de un plato:
Ahora bien, debemos determinar el código de pato correspondiente al plato más caro, y eso se puede hacer de dos formas:
o bien:
Vamos a usar la primera de ambas:
Aclaremos que esta no es la única forma de solucionar algo por el estilo. Pero no podrás solucionar ninguna si no te pones a razonar las consultas desglosando las condiciones que deben cumplir. Por eso te pedía que lo planearas por partes.
Ahora intenta hacer lo mismo (el modo de razonarlo, no el ejercicio) con el otro caso, por ti mismo.