2013-02-22 7 views
0

У меня есть таблица вроде этого:SSRS сравнить строки текста

+---------------------------------+ 
| Group1       | 
+-------+--------+----------------+ 
| Item1 | Value1 | Compare  | 
+-------+--------+----------------+ 
| Item2 | Value2 | Compare  | 
+-------+--------+----------------+ 
| Item3 | Value3 | Do not compare | 
+-------+--------+----------------+ 
| Group2       | 
+-------+--------+----------------+ 
| Item1 | Value1 | Compare  | 
+-------+--------+----------------+ 
| Item2 | Value2 | Compare  | 
+-------+--------+----------------+ 
| Item3 | Value3 | Do not compare | 
+-------+--------+----------------+ 

В таблице, как это я могу иметь несколько групп с несколькими элементами. Мне нужно сравнить только элементы, где написано «Сравнить». Например, мне нужно изменить цвет Value1 в Group2, если это значение больше, чем значение Value1 в Group1. Как я могу это сделать? Если в каждой группе будет только одна строка, это будет легко, но я не знаю, что делать, когда есть несколько строк.

+0

, которую вы должны сравнить только соседние строки или какая логика сравнения? –

+0

Мне нужно сравнить Value1 от Group2 с Value1 от Group1. Затем Value1 из Group3 с Value1 из Group1 и так далее. – JNM

+0

Это не невозможно в SSRS, вы не можете проходить через строки, можете ли вы сказать, по какому столбцу вы группируетесь? Может быть, я перестану писать SQL, которые помогут решить эту проблему. –

ответ

0

Итак, вам нужно сравнить новые группы со старой группой, в которой вы знаете название? Этот запрос даст вам любую новую группу и сравнить все детали с таким же именем, где они были отмечены в сравнении с исходной группой, Group1, и даем вам старые и новые значения:

SELECT New.GroupName AS NewGroup, New.ItemName AS NewItem, 
    Old.Value AS OldValue, New.Value AS NewValue 
FROM MyTable New 
INNER JOIN MyTable Old ON 
    Old.GroupName = 'Group1' AND 
    Old.ItemName = New.ItemName 
    Old.CompareField = 'Compare' AND 
    New.CompareField = 'Compare'