如果我创建了以下Employee对象(简化)...
public class Employee
{
public Employee()
{
}
public String StaffID { get; set; }
public String Forename { get; set; }
public String Surname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
...在Employee对象中有另一个属性是否可以接受,而Type也是Employee来保存其经理的详细信息(如下所示)?
public class Employee
{
public Employee()
{
}
public String StaffID { get; set; }
public String Forename { get; set; }
public String Surname { get; set; }
public Employee Manager { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
另外,为Manager属性实例化Employee对象的最佳方法是什么?显然包含在构造函数中会导致无限循环.从 …
我有一些与之相关的数据ValidFrom和ValidTo日期.简单来说:
MembershipId | ValidFromDate | ValidToDate
==========================================
0001 | 1997-01-01 | 2006-05-09
0002 | 1997-01-01 | 2017-05-12
0003 | 2005-06-02 | 2009-02-07
Run Code Online (Sandbox Code Playgroud)
此表上有一个非聚集索引,其中包含两个日期作为键值.
我也有涵盖了所有日期从时间维度表1900来2999.
我试图找出我怎么能选择一个范围从日期维度表的日期(假设2016-01-01到2016-12-31),然后确定对于每一日期,许多成员是如何在该日起生效.
下面的代码完成了工作,但性能不是很好,我想知道是否有人有任何建议可以更好地解决这个问题?
SELECT
d.DateKey
,(SELECT COUNT(*) FROM Memberships AS m
WHERE d.DateKey between m.ValidFromDateKey and m.ValidToDateKey
) AS MembershipCount
FROM
DIM.[Date] AS d
WHERE
d.CalendarYear = 2016
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的任何建议!
我在表中有一个简单的XML字段,该表在其节点内存储一个或多个值:
<MultiSelect>
<ItemKey>38</ItemKey>
<ItemKey>36</ItemKey>
</MultiSelect>
Run Code Online (Sandbox Code Playgroud)
如何以将这些值提取到结果中的列的方式查询此字段?
源数据:
RowKey Format
-----------------
1 <MultiSelect><ItemKey>40</ItemKey></MultiSelect>
2 <MultiSelect><ItemKey>40</ItemKey><ItemKey>36</ItemKey></MultiSelect>
Run Code Online (Sandbox Code Playgroud)
追求结果:
RowKey ItemKey
----------------
1 40
2 40
2 36
Run Code Online (Sandbox Code Playgroud)
我已经接近要在下面的查询中使用的位置,但这仅返回XML节点的名称,而不是其中的值:
SELECT
[RowKey],
x.y.value('local-name(.)', 'varchar(max)') AS ItemKey
FROM
[tbl_MyDataTable] AS t
cross apply t.[Format].nodes('MultiSelect/ItemKey') x(y)
Run Code Online (Sandbox Code Playgroud)
结果:
RowKey ItemKey
----------------
1 ItemKey
2 ItemKey
2 ItemKey
Run Code Online (Sandbox Code Playgroud)
任何建议都可以收到!