我有一个实体列表,其中的一个字段(UtcOffset)是一个数字。
我有一个过滤器列表offsets,它是数字列表。
我想用LINQ从第一个列表中选择UtcOffset字段等于或小于过滤器列表中delta添加固定值(3600)的值的所有实体。
我有一个仅适用于“相等大小写”的代码
public class TimeZone
{
public int Id { get; set; }
public string Name { get; set; }
public int UtcOffset { get; set; }
}
var delta = 3600;
List<TimeZone> TimeZones = new List<TimeZone>()
{
new TimeZone() {Id = 1, Name = "America/Tortola", UtcOffset = -14400},
new TimeZone() {Id = 2, Name = "Asia/Kathmandu", UtcOffset = 20700},
new TimeZone() {Id = 3, Name = "Asia/Kolkata", UtcOffset = …Run Code Online (Sandbox Code Playgroud) 我有一个查询(最后一列)之一,应该是减去其他两列的结果。我的问题是,如果操作数之一为零,那么结果我也为零。这是样品
SELECT
#TmpDates.Date As Registration,
ISNULL(Cr.NewSubscriptionsCount,0) As 'Initial Size',
ISNULL(U.UnsubsCount, 0) As 'Unsub. Count',
ISNULL(Cr.NewSubscriptionsCount - U.UnsubsCount, 0) As 'Alive count',
ISNULL(Cl.ClicksCount, 0) As Clicks,
CAST(ISNULL(C.Cost, 0) AS MONEY) As Cost,
CAST(ISNULL(P.Profit, 0) AS MONEY) As Revenue,
CAST(ISNULL((P.Profit - C.Cost), 0) AS MONEY) As Profit
FROM
#TmpDates
LEFT JOIN #TmpUnsubs U ON #TmpDates.Date = U.CreationDate
LEFT JOIN #TmpCreated Cr ON #TmpDates.Date = Cr.CreationDate
LEFT JOIN #TmpClicks Cl ON #TmpDates.Date = Cl.SubscriptionCreationDate
LEFT JOIN #TmpCost C ON #TmpDates.Date = C.CreationDate
LEFT …Run Code Online (Sandbox Code Playgroud)