在此SQL查询中添加新列?

时间:2013-05-07 23:40:20

标签: sql sql-server sql-server-2008 tsql sql-server-2005

我正在查询WIP和员工表中的数据:

WIP ID,NAME

员工 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连接和分组的anther列,但它将仅用于第一个唯一记录。对于下一个(名称和组织相同),它不会显示任何内容。本专栏将显示公司的独特顾问。请参阅第二个示例中的记录编号3和4。

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

非常感谢你的帮助

1 个答案:

答案 0 :(得分: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