[英]How to get unique records in the SQL Server 2000
我有4张桌子
Table1 : Employeetab
Employeeid EmployeeName
1 xyz
2 abc
3 mno
4 pqr
Table2 : PurchaseRequesttab
PRID Employeeid PRNR
1 1 pr1
Table3 : Statustab
StatusID Statusmsg
1 approve by manager
2 approve by CC manager
3 approve by designer
4 approve by BU head
Table4 : ApprovalStatustab
PRID StatusID Employeeid ApprovalDate
1 1 3 jan 1 2015
1 2 3 jan 3 2015
1 4 4 Jan 5 2015
结果应该是
PRNR EmployeeName Statusmsg
pr1 mno approve by CC manager
下面是我的查询,它给出了重复
Select
distinct P.PRNR, EmployeeName, Statusmsg
from Employeetab as E
inner join PurchaseRequesttab AS P ON E. Employeeid = p.Employeeid
inner join ApprovalStatustab as A ON P. PRID = A. PRID
inner join Statustab as S on A. StatusID = S. StatusID
如何获得结果集中的唯一记录,如何编辑结果:)
有些事情,您的数据与您的条目和表结构不匹配。
1. ApprovalStatustab A and PurchaseRequesttab as P - P.PRID = A.PRID mismatch entry as above.
这是您在下面的示例查询,我对此进行了评论并添加了一些条目,以更好地了解您的操作错误。
declare @Employeetab table(Employeeid int, EmployeeName varchar(50))
declare @PurchaseRequesttab table(PRID int,Employeeid int, PRNR varchar(50) )
declare @Statustab table(StatusID int, Statusmsg varchar(50) )
declare @ApprovalStatustab table(PRID int, StatusID int, Employeeid int, ApprovalDate varchar(50) )
insert into @Employeetab values (1,'xyz'),(2,'abc'),(3,'mno'),(4,'pqr')
insert into @PurchaseRequesttab values (1,1,'pr1')
, (2,3,'pr3') --this I added to get the result
insert into @Statustab values (1,'approve by manager'),(2,'approve by CC manager'),(3,'approve by designer'),(4,'approve by BU head')
insert into @ApprovalStatustab values (1,1,3,'jan 1 2015'),(1,2,3,'jan 3 2015'),(1,4,4,'jan 5 2015')
,(2,2,3,'jan 5 2015') --this I added to get the result
Select
distinct
P.PRNR,
EmployeeName
,Statusmsg
from @Employeetab as E
inner join @PurchaseRequesttab AS P ON E.Employeeid = p.Employeeid
inner join @ApprovalStatustab as A ON P.PRID = A.PRID
--and a.Employeeid = e.Employeeid --this is added for distinct result too
inner join @Statustab as S on A.StatusID = S.StatusID
您的状态消息必须有所不同,因为您的状态ID不同并且它们具有不同的消息...如果它们具有相同的消息,则您将有1行。
确保PurchaseRequesttab中的PRNR列是唯一的(如PRID列)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.