我只想从SQL语句中获得头号而不限制其他列

时间:2019-04-05 19:41:16

标签: sql

使用4个表(A,D,F和T)将报告放在一起,但是当只需要前1个报告时,报告将所有数字都放在一列中就会出现问题。

报表中的所有数据都是准确的,因此我的联接很好,但是F表正在提供更多的数据,那么……我尝试了HavingMaxtop 1和一个少数没有成功的人

 SELECT DISTINCT 
     CONVERT(VARCHAR(30), a.begin_date_of_service, 101) AS Budget_date, 
     t.account_value, 
     a.procedure_code, 
     (t.amount) AS Budget_Track, 
     a.units_authorized, 
     f.amount, 
     d.total_estimated_liab, 
     a.claimed_units, 
     (a.claimed_units * f.amount) AS Paidout, 
     (d.rem_liab_total) AS remainingLiab, 
     ((t.amount) - (a.estimated_liability_code)) AS REMAINING, 
     CASE 
        WHEN d.patid IS NULL THEN f.provid 
        ELSE d.patid 
     END AS IdentifyMember 

F.AMOUNT列有2个数字90和80。80是最新的或在顶部。

在不干扰剩余报告的情况下,我找不到删除90的方法

2 个答案:

答案 0 :(得分:0)

您可以通过使用WITH命令(在Oracle DB中)通过临时虚拟表进行选择来过滤F表上的联接。

示例: WITH TEMP_TABLE_F as (select * from f where column1 = 0) select [same as your previous select statement] from A, D, TEMP_TABLE_F, T;

答案 1 :(得分:0)

代替:

JOIN F ON column = column

尝试以下方法:

JOIN (SELECT * FROM F WHERE AMOUNT = 90) F ON column = column

这是非常常见的语法,应该在大多数数据库中都可以使用。