2013-08-08 2 views
-1

Я имею столеКак извлечь несколько столбцов из таблицы б

conipk contittle concycle ttlid 

122786 108405 S13 107552  
122787 108405 S13 107552  
122788 108405 S13 107552  
122789 108405 S13 107552 

Таблица B

conipk contype concile conamt 
122786 LU  N   5.000 
122786 LU   N   7.000 
122787 LU  N   1.000 
122788 LU  N   3.000 
122788 LU   N   1.000 
122789 LU  N   1.000 

Я хочу, 3 колонки и первая запись из таблицы B.

требуемый результат

conipk contittle concycle ttlid contype concile conanmt 

122786 108405 S13  107552 LU  N 5 
122787 108405 S13  107552 LU  N 1 
122788 108405 S13  107552 LU  N 3 
122789 108405 S13  107552 LU  N 1 

Я сделал запрос

SELECT  
    rc.contype, rc.concile, rc.conamtt, c.conipk, c.concycle, c.ttlid 
FROM 
    Contract c 
LEFT JOIN 
    (SELECT TOP 1 
     r.conipk, r.contype, r.concile, r.conamt 
    FROM 
     rules r 
    JOIN 
     contract c2 ON r.conipk = c2.conipk) AS rc ON rc.conipk = c.conipk 

Но я только что получил первую запись.

Заранее спасибо

+1

Как вы определяете "first" в таблице B? –

+0

Вы пытались присоединиться вместо левого соединения? –

+2

Какой сервер и версия сервера вы используете? –

ответ

0

Проблема в том, вы только присоединиться к одной записи из B, а не одну запись на ключевых.

Поскольку вы не указываете, какое серверное программное обеспечение вы используете, сложно найти окончательный ответ, но это будет работать в SQL Server 2005 и более поздних версиях (при условии, что вы предоставите правильный порядок определения «первого») запись):

SELECT  
    rc.contype, 
    rc.concile, 
    rc.conamtt, 
    c.conipk, 
    c.concycle, 
    c.ttlid 
FROM contract c 
LEFT JOIN ( 
    SELECT 
     ROW_NUMBER() OVER (PARTITION BY r.conipk ORDER BY ???) RowNUm, 
     r.conipk, 
     r.contype, 
     r.concile, 
     r.conamt 
     from rules r 
     join contract c2 on r.conipk = c2.conipk) AS rc 
    on c.conipk = rc.conipk 
     AND rc.RowNum = 1 
+0

Д. Стэнли Большое вам спасибо. Я использую SQL SERVER 2008. Это сработало. – Berenice

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