Как сделать выборку по нужному UNITID в firebird ?

Тема в разделе "Как сделать...", создана пользователем Chvalov, 27 июл 2015.

  1. Chvalov

    Chvalov

    Регистр.:
    31 окт 2011
    Сообщения:
    235
    Симпатии:
    76
    Есть запрос который отображает последнее изменения статуса
    Код:
    SELECT Stat.* FROM  STATHIST Stat
    INNER join
    (SELECT UnitID, MAX(DtStat) as DtStat FROM  STATHIST
       WHERE DtStat <= '25.07.2015 15:10'
       GROUP BY UnitID) MaxD
    ON Stat.UnitID=MaxD.UnitID AND Stat.DtStat=MaxD.DtStat
    Как мне такой запрос сделать в php желательно так чтобы вывести я мог только время последнего изменения нужного мне UNITID
    dbstat.png
     
  2. Casper_R

    Casper_R Создатель

    Регистр.:
    3 май 2007
    Сообщения:
    85
    Симпатии:
    25
    так синтаксис SQL одинаковый и не зависит от языка программирования

    так и выводи только DtStat, не?
    PHP:
    SELECT Stat.DtStat FROM  STATHIST Stat
    INNER join
    (SELECT UnitIDMAX(DtStat) as DtStat FROM  STATHIST
       WHERE DtStat 
    <= '25.07.2015 15:10'
       
    GROUP BY UnitIDMaxD
    ON Stat
    .UnitID=MaxD.UnitID AND Stat.DtStat=MaxD.DtStat
     
  3. Chvalov

    Chvalov

    Регистр.:
    31 окт 2011
    Сообщения:
    235
    Симпатии:
    76
    Да выводит только DTSTAT
     
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.405
    Симпатии:
    1.185
    это является ответом на вопрос?
     
  5. Chvalov

    Chvalov

    Регистр.:
    31 окт 2011
    Сообщения:
    235
    Симпатии:
    76
    Мне нужно выборку именно по заданному UNITID выбрать
    тоесть допустим по UNITID == 171 и по нему выбрать дату и время из последнего иснующего
     
  6. Casper_R

    Casper_R Создатель

    Регистр.:
    3 май 2007
    Сообщения:
    85
    Симпатии:
    25
    PHP:
    SELECT Stat.DtStat FROM  STATHIST Stat
    INNER join
    (SELECT UnitIDMAX(DtStat) as DtStat FROM  STATHIST
       WHERE DtStat 
    <= '25.07.2015 15:10' AND UnitID=171
       GROUP BY UnitID
    MaxD
    ON Stat
    .UnitID=MaxD.UnitID AND Stat.DtStat=MaxD.DtStat