2012-05-04 2 views
1

У меня есть таблицаИзвлечение строк из таблицы MYSQL с использованием GroupBy

Table

Я использую следующий запрос

select max(dblVersion),sName,fCompleted,ixLastModifiedBy,dtCreatedAt,dtLastModifiedAt,fStatus from tblechecklisttemplateversion group by ixTemplate 

Я получаю таблицу ниже в качестве выходного сигнала Table2

Значения строк других столбцов не соответствуют столбцу dblVersion. Как отобразить соответствующая строка значений

+0

Не ясно, что это результат ожидается? – ray

+1

Попробуйте использовать 'group by ixTemplate, dblVersion' –

+0

В таблице 2 dtCreated должен быть 2012-04-05 02:57:36 и fstatus Должен быть 1 и dbLastModifiedat Должно быть 2012-04-05 02:57:36 .. Таким образом, соответствующие значения столбца не отображаются, кроме fCompleted = 0 .. Сравнение таблиц 1 и таблицы 2 –

ответ

1

Попробуйте это

SELECT 
    a.dblVersion, 
    a.sName, 
    a.fCompleted, 
    a.ixLastModifiedBy, 
    a.dtCreatedAt, 
    a.dtLastModifiedAt, 
    a.fStatus 
FROM 
    tblechecklisttemplateversion a 
JOIN (
    SELECT 
     ixTemplate, 
     max(dblVersion) as dblVersion 
    FROM 
     tblechecklisttemplateversion 
    GROUP BY 
     ixTemplate) as b 
ON 
    a.ixTemplate=b.ixTemplate and a.dblVersion=b.dblVersion 
+0

, он дает ошибку .. Столбец 'dblVersion'in список полей неоднозначен. –

+1

Upss ... извините. нужно 'a' избегать двусмысленных –

0

Это может помочь вам ..

MySQL - Get row number on select

измененный запрос -

SELECT 0 INTO @x; 
    select (@x:[email protected]+1) as 
    rownumber,max(dblVersion),sName,fCompleted,ixLastModifiedBy,dtCreatedAt, 
    dtLastModifiedAt,fStatus 
    from tblechecklisttemplateversion group by ixTemplate 
+0

его получение того же результата, что и в предыдущем –