Как объединить отдельные столбцы из разных таблиц в одну таблицу - PullRequest
0 голосов
/ 29 марта 2019

У меня есть следующие курсоры VFP (таблицы):

Cursor 1 Cursor 2 Cursor 3

и мне нужен этот результат:

Final Cursor

Я пробовал FULL JOIN, CROSS JOIN, UNION ALL и т. Д. Но я не могу решить эту проблему.

Пожалуйста, помогите мне.

Я использую Visual FoxPro 9.0

Вот код:

lkey = SYS(2015) 
CREATE CURSOR cur1 (unico c(10),valor c(2))
INSERT INTO cur1 values(lkey, 'A1')
INSERT INTO cur1 values(lkey, 'A2')
INSERT INTO cur1 values(lkey, 'A3')

CREATE CURSOR cur2 (unico c(10),valor c(2))
INSERT INTO cur2 values(lkey, 'B1')
INSERT INTO cur2 values(lkey, 'B2')
INSERT INTO cur2 values(lkey, 'B3')    

INSERT INTO cur3 values(lkey, 'C1')
INSERT INTO cur3 values(lkey, 'C2')
INSERT INTO cur3 values(lkey, 'C3')

Спасибо!

1 Ответ

3 голосов
/ 29 марта 2019

Если критерий объединения соответствует только положению записи в курсоре recno():

SELECT cur1.valor, ;
       cur2.valor, ;
       cur3.valor ;
       FROM (SELECT valor, ;
                    RECNO() rn ;
                    FROM cur1) cur1 ;
            FULL JOIN (SELECT valor, ;
                              RECNO() rn ;
                              FROM cur2) cur2 ;
                      ON cur2.rn = cur1.rn ;
            FULL JOIN (SELECT valor, ;
                              RECNO() rn ;
                              FROM cur3) cur3 ;
                      ON cur3.rn = cur2.rn 
...