使用4个表(A,D,F和T)将报告放在一起,但是当只需要前1个报告时,报告将所有数字都放在一列中就会出现问题。
报表中的所有数据都是准确的,因此我的联接很好,但是F表正在提供更多的数据,那么……我尝试了Having
,Max
,top 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的方法
答案 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
这是非常常见的语法,应该在大多数数据库中都可以使用。