0
我在左连接左连接中最早的一行挣扎。与左连接奋斗
结果显示2011年的日期,但我知道一个事实,这个特定的行应该返回2008
SELECT TOP 1000
f.name as [Franchisee]
,p.paid_date as paid_date
FROM franchisees_franchisee f
OUTER APPLY (SELECT TOP 1 *
FROM era_project_invoice_payment p
WHERE f.franchiseeid = p.franchiseeid
and p.deleted = 0 and p.payment_confirmed = 1
ORDER BY p.eraprojectinvoicepaymentid ASC) p
where
f.deleted = 0
and f.name LIKE '%VKlinkosch%'
下面返回正确的,2008年的日期。
SELECT TOP 1000
f.name as [Franchisee]
,min(p.paid_date) as paid_date
from [era_uat_shared].[dbo].[franchisees_franchisee] f
left join era_project_invoice_payment p
on f.franchiseeid = p.franchiseeid
where f.deleted = 0
and f.name LIKE '%VKlinkosch%'
GROUP BY f.name
问题是,我需要的不仅仅是支付表中的付费日期! :(
我会仔细检查你的事实...... 2008年的日期不是那个'franchseeid',或'deleted'不等于'0',或者'payment_confirmed'不等于' 1'。 – SqlZim
也许它没有按照你期望的内部视图排序? – user1327961
Hi Zim,2008指的是付费日期。为了得到这个2008年的日期,我所要做的就是使用min(paid_date)和在一个小小的查询中的f.name字段 – Justin