我正在尝试查询企业SQL Server
无论出于何种原因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 ║
║ ║ ║ ║
║ ║ ║ ║
╚═══════════╩═════════════════════════════╝
答案 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
答案 1 :(得分: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
希望它有所帮助。