2013-05-07 94 views
0

我查询从WIP和Employee表数据:在此SQL查询中添加新列?

WIP ID,姓名

员工 ID,姓名,Orgnization

加入两个我可以查询:

select w.ID,e.Organization,w.ConsultantName,e.OrganizationID, w.ConsultantID 
from vwWIPRecords w 
inner join vwEmployees e on w.ConsultantID=e.ID; 

Resutls:

1 VHAA Web User 1 1 
2 VHAA NZ RP  1 3 
3 VHAA Ghom Mure 1 2 
4 VHAA Ghom Mure 1 2 

需求量的:

查询通过e.Organization和e.ConsultantName添加花药列,这将串联和组,但它会只对第一个唯一的记录。对于下一个(名称和组织相同),它不会显示任何内容。本专栏将展示一家公司的独特顾问。请参阅第二个例子中的记录编号3和4。

1 VHAAWeb User 1 1 
2 VHAANZ RP  1 3 
3 VHAAGhom Mure 1 2 
4     1 2 

非常感谢您的帮助

+0

什么是造成您困难的部分? – 2013-05-07 23:44:47

+0

@DanBracuk我没有意义如何解决这个问题?你能否请帮助 – user576510 2013-05-07 23:45:51

+0

@DanBracuk我无法理解如何获得第一个独特的逻辑,并避免接下来的相同组合。 – user576510 2013-05-07 23:47:13

回答

1

这里是一个开始。最后一列是一个标志,表示该行应该是空白的。让我知道如果这对你有用,并且我可以进一步帮助。

select w.ID,e.Organization, w.ConsultantName, 
e.OrganizationID, w.ConsultantID, CASE WHEN D.Dup > 1 AND D.ID <> w.ID THEN 'Y' 
ELSE 'N' END As HideMe 
from vwWIPRecords w 
inner join vwEmployees e on w.ConsultantID=e.ID 
inner join 
(
    select MIN(w.ID) As ID, e.Organization,w.ConsultantName, 
    e.OrganizationID, w.ConsultantID, COUNT(*) AS Dup 
    from vwWIPRecords w 
    inner join vwEmployees e on w.ConsultantID=e.ID 
) D 
ON D.Organization = w.Organization 
AND D.ConsultantName = w.ConsultantName 
AND D.OrganizationID = w.OrganizationID 
AND D.ConsultantID = w.ConsultantID 
+0

感谢您的时间,但这不是我要求的。我不想查询不同的记录。相反,我想要查询所有记录,但只是在新列中想要连接两列,并且如果可以有多个相同的组合,则只有第一个列会按newcolumn显示一组。 – user576510 2013-05-08 00:18:33

+1

我改变了我的答案 - 看看它是否有帮助。 – 2013-05-08 00:32:36