sql >> Base de Datos >  >> RDS >> Mysql

Filas de salida con valor nulo solo si no hay la misma fila con un valor no nulo

Si desea obtener lo más nuevo para cada ItemID correspondiente al Type selección, puede hacer una subconsulta para devolver primero el precio más nuevo y luego unirse a la tabla original para mostrarlo en el resultado final. A continuación se muestra la consulta de ejemplo:

SELECT A.* 
FROM   ItemPrices A 
JOIN   ( SELECT itemid,
                TYPE,
                MAX(fromdate) AS mdt 
         FROM   ItemPrices 
         GROUP BY itemid,TYPE ) B
ON      A.itemid=B.itemid 
        AND A.type=B.type 
        AND A.fromdate=B.mdt
WHERE   A.type=1
ORDER BY A.itemid;

Puede ver la demostración aquí:https://www.db-fiddle.com/ f/7YCaiLYz9DE11wnijWEdi/3