Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Linhas de saída com valor nulo somente se não houver a mesma linha com valor não nulo


Se você deseja obter o mais recente para cada ItemID correspondente ao Type seleção, você pode fazer uma subconsulta para retornar primeiro o preço mais recente e, em seguida, juntar-se à tabela original para mostrá-lo na saída final. Segue abaixo a consulta de exemplo:
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;

Você pode ver a demonstração aqui:https://www.db-fiddle.com/ f/7YCaiLYz9DE11wnijWEdi/3