2015-09-30 18 views
0

У меня есть в таблице, которая перечисляет значения для текущего месяца и за предыдущий месяц с Weekpart быть WE (выходные) и WD (Будни)Сравнение строк значений SQL

Weekpart Months AvrgApps AvrgOffers AvrgDisbursements 

WE   201509 441   259   40 

WE   201508 432   235   40 

WD   201508 2218  1591  334 

WD   201509 2267  1156  346 

Мне нужно сравнить значения WD, и мы в течение месяца и возвращает 1 в столбце, если текущее значение месяца выше, чем в предыдущем месяце, и 0, если ее равной или ниже значения предыдущего месяца результирующая таблица будет выглядеть примерно

Weekpart Months AvrgApps AvrgOffers AvrgDisbursements 
WE  201509 441   259   40 

WE  201508 432   235   40 

WD  201508 2218   1591  334 

WD  201509 2267   1156  346 

WE  201509 1    1   0 

WD  201509 1    0   1 
+0

Вы написали «если текущее значение месяца выше». Выше того, что конкретно? Измените свой вопрос, чтобы уточнить его. –

+0

Спасибо. Ред. Надеюсь, теперь вопрос ясен. – TinaM

+0

Можете ли вы показать мне, как ответ вы хотите. Не получив смысла от вопроса –

ответ

0

Я предполагаю, что вы ищете что-то вроде этого ?

SELECT CONCAT(current.Months, '-', previous.Months) AS Months, 
     IF(current.AvrgApps > previous.AvrgApps, 1, 0) AS AvrgApps, 
     IF(current.AvrgOffers > previous.AvrgOffers, 1, 0) AS AvrgOffers, 
     IF(current.AvrgDisbursements > previous.AvrgDisbursements, 1, 0) AS AvrgDisbursements 
FROM (
    SELECT * 
    FROM t 
    WHERE Months = @current := (SELECT MAX(Months) FROM t) 
) current 
JOIN (
    SELECT * 
    FROM t 
    WHERE Months = (SELECT MAX(Months) FROM t WHERE Months < @current) 
) previous ON current.Weekpart = previous.Weekpart 

Это даст вам разницу в качестве результатов. Я не уверен, что вы хотите «объединить» его вместе с таблицей данных.

+0

Спасибо, посмотрим, смогу ли я заставить его работать. Мне не обязательно объединяться – TinaM

Смежные вопросы