1

下面是我拥有的代码示例,我希望它打印用户的帐号以及每个程序号和为该约会显示的序列号,例如:

acc num        proc num  Seq num
--------------------------------
Vxxxxxxxxx26    44.42   1
Vxxxxxxxxx26    57.94   2
Vxxxxxxxxx26    57.32   3
Vxxxxxxxxx26    38.93   4

但相反,它会在相同的日期和时间打印相同事物的许多副本,例如:

acc num        proc num  Seq num
--------------------------------
Vxxxxxxxxx26    44.42   1
Vxxxxxxxxx26    57.94   2
Vxxxxxxxxx26    57.32   3
Vxxxxxxxxx26    38.93   4
Vxxxxxxxxx26    44.42   1
Vxxxxxxxxx26    57.94   2
Vxxxxxxxxx26    57.32   3
Vxxxxxxxxx26    38.93   4
Vxxxxxxxxx26    44.42   1
Vxxxxxxxxx26    57.94   2
Vxxxxxxxxx26    57.32   3
Vxxxxxxxxx26    38.93   4

如何限制它,使其仅显示 1 组值而不是 5 组值?

顺便说一句,我是 Stack Overflow 和 SQL 的新手,所以在复习时请记住这一点。谢谢你。

注意:看起来好像是OeOrders桌子。当这不是 JOINED 时,它有适当的行,当它被 JOINED 时,它会扩展为所有多行。

代码

DECLARE
    @StartDate DateTime,
    @EndDate DateTime
    SET @StartDate = '10/28/2013 00:00:000'
    SET @EndDate = '11/28/2013 23:59:000'
    SET @RecordType = '6'

SELECT 
    ,AbstractData.AccountNumber AS AcctNum_2
    ,'I9:'+AbsDrgProcedures.DrgProcedure AS ProcCode_3
    ,AbsDrgProcedures.ProcedureSeqID AS Priority_4

FROM AbstractData
    LEFT JOIN AbsDrgProcedures 
    ON (AbsDrgProcedures.VisitID = AbstractData.VisitID) AND AbsDrgProcedures.VisitID IS NOT NULL
    LEFT JOIN OeOrders 
    ON (OeOrders.VisitID = AbstractData.VisitID) 

WHERE 
    AbstractData.PtStatus <> 'REF'
    AND OeOrders.ServiceDateTime BETWEEN @StartDate and @EndDate
4

2 回答 2

1

选择 distinct 将过滤掉重复项,只需在选择后添加 distinct 就可以了

于 2014-04-11T20:57:57.350 回答
1

选择不同的结果 -SELECT DISTINCT而不是SELECT.

于 2014-04-11T21:03:28.650 回答