Mysql
 sql >> база данни >  >> RDS >> Mysql

Извеждане на редове с нулева стойност само ако няма същия ред с ненулева стойност

Ако искате да получите най-новите за всеки ItemID съответстващи на Type избор, можете да направите подзаявка, за да върнете първо най-новата цена, след което да се присъедините към оригиналната таблица, за да я покажете в крайния изход. По-долу е примерната заявка:

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;

Можете да видите демонстрацията тук:https://www.db-fiddle.com/ f/7YCaiLYz9DE11wnijWEdi/3




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ГРЕШКА 1064 (42000):Имате грешка във вашия SQL синтаксис; Искате да конфигурирате парола като root като потребител

  2. Опцията ON DELETE CASCADE не се генерира при използване на генериране на ddl схема на Mysql

  3. PHP кеширане - По-бързо ли е да запишете в база данни или да създадете файл?

  4. Базата данни с обвързани параметри на PHP извиква грешен брой параметри, ако използвам двоеточие

  5. Подценявам ли MySQL?