我编写了一个C#程序,将t-SQL记录输出到excel电子表格中的单独选项卡中,由记录所属的人分割。
我已经看到我可以在一个数据集中包含许多数据表,并将每个数据表转换为单独的选项卡(how to store multiple DataTables into single DataSet in c#?),所以现在我需要填充我的数据表。
我没有固定的人员列表,每次运行程序时都会有所不同,并且一个人可以分配任意数量的记录。
有没有办法使用SQL / C#来执行此操作,例如使用order或group by;或者我是否必须获取结果,选择人员列表,然后循环该特定人员的每个SQL查询并将其提供给新的数据表?
以为我会问,在我做了很长的路之前,是否有人知道很短路,因为这不是一件不寻常的事情。所以我怀疑必须有一个更简单的方法。
答案 0 :(得分:1)
通常每个SELECT语句都会得到一个DataTable。
但是,您可以选择所有内容,然后使用LINQ对数据进行分组并填充DataTable。查看this是否有任何帮助。
答案 1 :(得分:0)
它取决于表结构,以及源和目标。
如果您有多个源表,可以将它们与UNION语句一起附加。这给出了所有表的不同值。您可以使用UNION ALL保留重复值。
SELECT customer_key, customer_name, customer_address
FROM table_1 customer_key = @Customer_key
UNION(或UNION ALL)
SELECT customer_key,customer_name,customer_address 来自table_2 WHERE Customer_key = @Customer_key
UNION等..