Mysql
 sql >> Database >  >> RDS >> Mysql

Genera righe con valore nullo solo se non è presente la stessa riga con un valore non nullo

Se vuoi ottenere il più recente per ogni ItemID corrispondente al Type selezione, puoi eseguire una sottoquery per restituire prima il prezzo più recente, quindi unirti alla tabella originale per mostrarlo nell'output finale. Di seguito sono riportate le query di esempio:

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;

È possibile visualizzare la demo qui:https://www.db-fiddle.com/ f/7YCaiLYz9DE11wnijWEdi/3