выполнение операций над столбцами и строками - PullRequest
1 голос
/ 22 марта 2012

У меня есть две таблицы

1) столбец

2) строка

COLUMN TABLE                
COLumnID
----------------
1
2
3
4
5
6
7
8
9

ROW TABLE
ROW iD
-------------
100
104
101
99
77
20
10

Окончательный результат должен выглядеть следующим образом:

01.Row         1    2    3    4    5    6    7    8    9
02.----------- ---- ---- ---- ---- ---- ---- ---- ---- ----
03.10          x    x              x                  
04.20          x    x         x    x                  
05.77          x                             x        
06.99          x         x                             x
07.100         x    x         x    x                  
08.101         x                                      
09.104         x    x         x                   x

Задача состоит в том, чтобы пометить координату значением X в том и только в том случае, если значение строки делится на значение col, т. Е. Имеет нулевое значение по модулю.Дополнительные требования: окончательный запрос должен работать со случайными значениями строк и должен использоваться оператор сводки.

1 Ответ

3 голосов
/ 22 марта 2012

Следующее должно делать то, что вы ищете на сервере SQL.используйте CTE, чтобы определить, где должен быть x, а затем поверните его от CTE

with mq as(select a.rowid
                ,b.columnid
                ,case when (a.rowid % b.columnid) = 0 then 'X' else null end as coord
           from row_table a
                inner join column_table b on 1=1)

select  rowid,[1], [2], [3], [4],[5], [6], [7], [8], [9]
from mq
pivot( max(coord) for columnid in ([1], [2], [3], [4],[5], [6], [7], [8], [9])) as pv
...