我有 4 个要从中获取记录的表。前三个表需要与公共行进行内连接,但对于第四个表,我需要左外连接,因为我必须保留前三个表中已经获取的行。
现在,问题是我想与第四个表左连接,但它应该只选择日期 = 当前日期的记录。我在调用我的存储过程时从 C# 传递当前日期。但问题是 SQL Server 给出了空记录。
这是查询::
alter procedure
(@currentdate varchar(50))
select distinct
table1.name, table2.class,table3.stream
from
table1
inner join
table 2 on table1.id = table2.id
inner join
table3 on table3.id=table2.id
left outer join
table 4 on table 4.id = table3.id and table4.date = @currentdate
我使用了左外连接,因为我希望使用 where 子句过滤整个结果并只给我一条记录的方式记录。
然后我也在存储过程中使用了两个日期的转换,但没有积极的回应。
从 C# 我正在使用
var date = datetime.now.toshortdate();
CallStoredProcedure(date)
请尽快帮助我解决这个问题。谢谢