Diğer duruma bağlı olarak sol dış birleşimin "açık" bölümüne bir koşul eklemek istiyorum. "Case when" i kullanmaya çalışıyorum ama SQL Server 2008 bir sözdizimi hatası veriyor (eşitlik işaretlerinden memnun değil). Bunun için çok kolay olabilir, ama bunu nasıl düzelteceğimi gerçekten anlayamadım. Herhangi bir yardım takdir edilecektir.Diğer koşullara bağlı olarak sol dış birleştirmeye koşul ekleme - SQL Server 2008
@declare @timeMode int = 2;
...
...
select *
from #AllPeriods ap
left outer join #results r on ap.p1= r.p1
and ap.p2 = r.p2
and DATEDIFF(S,ap.StartPeriod, r.StartPeriod) = 0
and
case
when @timeMode != 4
then DATEDIFF(s,ap.EndPeriod, r.EndPeriod) = -1
else DATEDIFF(s,ap.EndPeriod, r.EndPeriod) = 0
end
CASE bir ifadedir. Bir skaler değer döndürmek için kullanılır. Burada kodunuzda çalıştığınız şekilde kullanılamaz. –