Mysql
 sql >> Base de données >  >> RDS >> Mysql

Générer des lignes avec une valeur nulle uniquement s'il n'y a pas la même ligne avec une valeur non nulle

Si vous souhaitez obtenir le plus récent pour chaque ItemID correspondant au Type sélection, vous pouvez faire une sous-requête pour renvoyer d'abord le prix le plus récent, puis rejoindre la table d'origine pour l'afficher dans la sortie finale. Voici l'exemple de requête :

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;

Vous pouvez voir la démo ici :https://www.db-fiddle.com/ f/7YCaiLYz9DE11wnijWEdi/3