我需要计算基于种子行的列,其中每行的值使用“前一”行的值。我觉得这应该是一个递归查询,但我不能完全理解它。
为了显示:
BOP EOP IN OUT Wk_Num
--------------------------------------
6 4 10 12 1
? ? 2 6 2
? ? 7 5 3
... ... ... ... ...
Run Code Online (Sandbox Code Playgroud)
因此下一行的 BOP 和 EOP 列需要使用种子行进行计算。IN 和 OUT 值已存在于表中。
BOP =(上一行的 EOP)
EOP =(上一行的 EOP)+ IN - OUT [其中 IN 和 OUT 来自当前行)
此示例的输出应如下所示:
BOP EOP IN OUT Wk_num
-------------------------------------
6 4 10 12 1
4 0 2 6 2
0 2 7 5 3
2 6 4 0 4
... ... ... …Run Code Online (Sandbox Code Playgroud) 我试图使用 ADO 对象将传递到 SQL Server 的 sql 命令的结果返回到 Excel 中,但我的 Recordset 总是返回关闭/空的。我的猜测是我的 sql 语句不会返回任何内容 - 尽管我认为它应该返回一条记录。
我正在运行的 SQL 是一个 530 行的野兽,但它归结为一条MERGE语句,该语句应该将结果转储到表 var 中,然后从中进行选择。我想要将此 select 语句返回到 ADO 记录集中。
这是我正在使用的通用 SQL 语句:
MERGE ldw_plan_working AS target
USING source
ON target.DT_Code = source.DT_Code
AND target.Country = source.Country
AND target.Channel = source.Channel
AND target.HierarchyID = source.HierarchyID
AND target.lifecycle = source.lifecycle
WHEN MATCHED
THEN UPDATE SET
[Sales_TOT_Local] = source.[Sales_TOT_Local],
[Sales_TOT_USD] = source.[Sales_TOT_USD],
[Sales_TOT_CAD] = source.[Sales_TOT_CAD],
[Sales_CLR_Local] = source.[Sales_CLR_Local],
[Sales_CLR_USD] = source.[Sales_CLR_USD],
[Sales_CLR_CAD] = …Run Code Online (Sandbox Code Playgroud) 我有一个超类,Super有一个子类SubA
public class Super{}
public class SubA : Super{}
Run Code Online (Sandbox Code Playgroud)
我想要一个接口来定义对Super.
public interface IDoer
{
List<Super> GetObjects();
void SaveObjects(List<Super> items);
}
Run Code Online (Sandbox Code Playgroud)
所以基本上,我希望能够多态地传递 的集合Supers,但List<SubA>不是List<Super>. 所以我的 subADoer 没有实现 IDoer。
public class SubADoer : IDoer
{
public List<SubA> GetObjects{ return new SubA()}
public void SaveObjects(List<SubA> items){//save}
}
Run Code Online (Sandbox Code Playgroud)
我如何抽象对象的列表(或其他一些集合类型)来反映构成它们的类型之间的关系?