sql >> Database >  >> RDS >> Mysql

Voer rijen met een null-waarde alleen uit als er niet dezelfde rij is met een niet-null-waarde

Als u de nieuwste wilt voor elke ItemID overeenkomend met het Type selectie, kunt u een subquery maken om eerst de nieuwste prijs te retourneren en vervolgens deelnemen aan de originele tabel om deze in de einduitvoer weer te geven. Hieronder vindt u de voorbeeldquery:

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;

Je kunt de demo hier bekijken:https://www.db-fiddle.com/ f/7YCaiLYz9DE11wnijWEdi/3




  1. Tabelpartities opsommen in de Postgres-tabel

  2. mysql, herhaal kolomnamen

  3. NodeJS Server met mysql loopt vast

  4. Coalesce gebruiken in MySQL