我有四个表,每个表中都有一个日期列。我想获得这四个日期列的最大日期。
DateTime maxDate = ((from stockIn in db.StockIns select stockIn.StockInDate)
.Union(from stockOut in db.StockOuts select stockOut.StockOutDate)
.Union(from stockC in db.StockClearances select stockC.StockClearanceDate)
.Union(from stockR in db.StockRejections select stockR.StockRejectionDate))
.Max().Value;
这是最简单的方法吗?
提前致谢
答案 0 :(得分:3)
如果这是您的数据存储方式,那就非常简单。
答案 1 :(得分:2)
我不会使用UNION
来解决此问题,因为查询可能性能较差。 4个表的联合然后排序(获得Max)可能在大表时非常慢。
从4个查询中获取4个MaxDates,并在应用程序中找到最大值,或使用4个子查询获取这4个MaxDates,然后获得这些结果的(SQL语法)CASE WHEN
或UNION
(只有4行)和MAX()
。
不知道如何从SQL转换为Linq-to-sql
...
答案 2 :(得分:0)
理想情况下,您可以将您的股票全部存储在一个表格中,并与其他表格建立联系,以确定其是否为“入”,“出”,“清除”或“拒绝”。然后你可以在一张桌子上做一个MAX。