2010-06-21 57 views
0

使用相同的列我有一个表,该表具有3个字段:id, name, reporting于具有其他id:代替另一个

ID NAME REPORT 
------------------- 
1  asd  3 
2  vv  1 
3  dv  2 

欲被打印就位在报告列ID的名称:

ID NAME REPORT 
------------------- 
1  asd dv 
2  vv  asd 
3  dv  vv 

有人可以帮忙吗?

回答

1

您需要使用报告ID加入包含报告名称的表格。

事情是这样的:

Select a.Id, 
     a.Name, 
     b.Name as Report 

From dbo.myTable a 
Join dbo.myTable b on a.Report = b.Id 

我要补充一点,如果一些Names没有相应的报告ID,那么你可能需要使用一个Left Join代替Join,这样你仍然可以在所有行基表。

e.g

Select a.Id, 
     a.Name, 
     IsNull(b.Name, 'No Report Defined') as Report 

From dbo.myTable a 
Left Join dbo.myTable b on a.Report = b.Id 
+0

它看起来就像是一个包含名字:) – 2010-06-21 09:50:46

+0

@Daniel瓦萨洛同桌 - 感谢您指出了这一点 - 多么奇怪。无论如何,我已经修改了我的答案。再次感谢,巴里 – codingbadger 2010-06-21 10:08:03

+0

我只有一个表中的列只有一个表....我要做什么? – jasmeet 2010-06-21 10:18:26