2015-06-26 1 views
0

Я пытаюсь для запроса предприятия SQL ServerSQL несколько поиски для одного столбца кода в запросе SQL

По какой причине claim_Id и Status_ID оба содержатся в одной и той же таблицы я хочу перевести claim_ID и Status ID в тот же запрос, что и отдельные столбцы, как я могу это сделать?

╔═══════════╦═════════╗ 
║ claim ║ code ║ 
╠═══════════╬═════════╣ 
║ claim_ID ║ code_ID ║ 
║ status_ID ║ name ║ 
╚═══════════╩═════════╝ 

Claim стол:

╔═══════════╦═════════╗═════════╗ 
║ Claim_ID ║status_ID║Item_ID ║ 
╠═══════════╬═════════╣═════════║ 
║ 1   ║ 12  ║ 1  ║ 
║ 2   ║ 14  ║ 2  ║ 
╚═══════════╩═════════╝═════════ 

Code стол:

╔═══════════╦═════════╗ 
║ CODE ID ║ name ║ 
╠═══════════╬═════════╣ 
║ 1   ║ complete║ 
║ 2   ║ cancel ║ 
║ 12  ║ Open ║ 
║ 14  ║Shipping ║ 
╚═══════════╩═════════╝ 

Идеальный выход:

╔═══════════╦════════════ ╗════════════════ 
║ ITEM_ID ║Claim_ID_name║status_ID_name ║ 
╠═══════════╬═════════════╬═══════════════╣ 
║ 1   ║ complete ║ open  ║  
║ 2   ║ cancel  ║ shipping ║ 
║   ║    ║    ║ 
║   ║    ║    ║ 
╚═══════════╩═════════════════════════════╝ 
+1

Пожалуйста, разместите данные образца и нужный результат. Скорее всего, вам понадобится использовать конструкции CASE. –

+1

Просьба описать лучше и показать данные образца – Drew

+0

эй, ребята, жаль, что я новый для переполнения стека постарался сделать это как можно яснее –

ответ

0

Использование суб-запрос:

SELECT 
    ITEM_ID, 
    (SELECT name FROM Code WHERE CODE_ID = Claim_ID) AS Claim_ID_NAME, 
    (SELECT name FROM Code WHERE CODE_ID = status_ID) AS status_ID_name 
FROM Claim 
+0

спасибо за то, что Эрик оказался самым эффективным решением. Я провел небольшое исследование в подзапросах, результат –

0

Попробуйте это.

select item_id, code_table.name, sub_table.name 
from claim_table, code_table, 
(select code_id, name 
from code_table 
) sub_table        
where claim_id = code_table.code_id 
and status_id = sub_table.code_id; 

Вы также могли бы попытаться изучить подзапросы:

http://www.tutorialspoint.com/sql/sql-sub-queries.htm

http://beginner-sql-tutorial.com/sql-subquery.htm

Надеется, что это помогает.

+0

Вы можете попробовать это, но я думаю, что ответ Эрика будет выполняться быстрее, поскольку он потребляет меньшую стоимость. – user3462803

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