Teradata 使用 Top 10 和 Distinct

Teradata using Top 10 and Distinct

我收到一条错误消息,提示我无法将 Top 10 与 distinct 一起使用 我想知道是否有任何方法可以让我的查询在这种方式下工作。这就是错误所说的。

[Teradata Database] [6916] TOP N 语法错误:DISTINCT 选项不支持 Top N 选项。

查询如下: 谢谢。

 Select Distinct TOP 10   t1.Adjustment_ID, t1.OfficeNum, t1.InvoiceNum, t1.PatientNum,
t1.CurrentStatus, t1.AdjustmentTotal, t1.SubmittedOn, t1.UserSubmitted,
t1.Invoice_Type, t1.Pat_First_Name, t1.Pat_Last_Name,t2.Reason_Code FROM App_UnityAdj_AdjInfo_Tbl t1
Left Join RCM_WORK_PRD.App_UnityAdj_AdjRecord_Tbl t2 
On t1.Adjustment_ID = t2.Adjustment_ID
Where t1.UserSubmitted = 'Name' AND (t1.CurrentStatus = 'Pending' OR t1.CurrentStatus = 'Deny')

你想做什么? SELECT 中有不在 GROUP BY 中的列。你也有 TOP 而没有 ORDER BY,这很可疑。

一个简单的方法是将所有 SELECT 列移动到 GROUP BY:

select TOP 10  t1.Adjustment_ID, t1.OfficeNum, t1.InvoiceNum, t1.PatientNum,
       t1.CurrentStatus, t1.AdjustmentTotal, t1.SubmittedOn, t1.UserSubmitted,
       t1.Invoice_Type, t1.Pat_First_Name, t1.Pat_Last_Name, t2.Reason_Code
from App_UnityAdj_AdjInfo_Tbl t1 Left Join  
     RCM_WORK_PRD.App_UnityAdj_AdjRecord_Tbl t2 
     On t1.Adjustment_ID = t2.Adjustment_ID
where t1.UserSubmitted = 'Name' AND
      t1.CurrentStatus in ('Pending', 'Deny')
group by t1.Adjustment_ID, t1.OfficeNum, t1.InvoiceNum, t1.PatientNum,
         t1.CurrentStatus, t1.AdjustmentTotal, t1.SubmittedOn, t1.UserSubmitted,
         t1.Invoice_Type, t1.Pat_First_Name, t1.Pat_Last_Name,t2.Reason_Code;

我想我明白了,万一有人想知道它是样本 10

Select Distinct t1.Adjustment_ID, t1.OfficeNum, t1.InvoiceNum, t1.PatientNum,
t1.CurrentStatus, t1.AdjustmentTotal, t1.SubmittedOn, t1.UserSubmitted,
t1.Invoice_Type, t1.Pat_First_Name, t1.Pat_Last_Name,t2.Reason_Code FROM    App_UnityAdj_AdjInfo_Tbl t1
Left Join RCM_WORK_PRD.App_UnityAdj_AdjRecord_Tbl t2 
On t1.Adjustment_ID = t2.Adjustment_ID
Where t1.AssignedTo IS null AND (t1.CurrentStatus = 'Pending')
sample 10