首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将表寄存器转换为临时表的列?

如何将表寄存器转换为临时表的列?
EN

Stack Overflow用户
提问于 2014-12-03 20:22:33
回答 2查看 43关注 0票数 0

假设我有一个表产品和一个表orders,它使用表“products”来指定每个订单中销售的产品。

现在我想做一个导出到Excel的报告,在Excel中,每个产品都在一个不同的列中,并且每个产品都有一个寄存器,计算出售出和需要销售的产品数量,每个销售者一个寄存器。

示例:

产品:

代码语言:javascript
运行
复制
 id | desc    | target_per_month
 -------------------------------
 1  | prepaid | 1000
 2  | pospaid | 500

命令:

代码语言:javascript
运行
复制
 id | seller  | product_id | date
 --------------------------------------
 1  | clark   | 1          | 2014-12-11
 2  | kent    | 1          | 2014-12-10
 3  | kent    | 2          | 2014-12-11
 4  | kent    | 1          | 2014-12-10
 5  | clark   | 2          | 2014-12-09

我想要的:

代码语言:javascript
运行
复制
 seller | prepaid_sold | prepaid_target | prepaid_left | pospaid_sold | pospaid_target | pospaid_left 
 -------------------------------------------------------------------------------------------
 clark  | 1            | 1000           | 999          | 1            | 500            | 499
 kent   | 2            | 1000           | 998          | 1            | 500            | 499

如果我希望这个表能够动态地接受新产品,那么这个select会是什么样的呢?它现在的方式是手动放置3列为每一个新产品,非常可怕!

EN

回答 2

Stack Overflow用户

发布于 2014-12-04 11:57:39

这里有一个棘手的问题,我认为您应该尝试一种不同的方法,但要回答您的问题,我要说的是,您可以根据所需的条件,根据查询分组的结果动态创建"CREATE“语句。您需要创建group查询,为其创建一个游标,并创建一个循环来完成创建表的sql语句。获得语句后,可以使用"EXEC( @MySqlStatement )“创建表,其中@MySqlStatement是包含"CREATE”语句文本的变量。

之后,您可以使用相同的循环来使用数据来完成新表。

虽然我确信您可以使用这种方法使其工作,但我从未尝试过它,因为它所需的工作量和测试量很大。

您需要考虑的另一件事是,您将在何处将该脚本称为t脚本。如果您构建一个存储过程,它将是好的,但您不能使用excel中的存储过程(至少它不是直接的)。如果您构建了一个多语句表函数,它可能不允许您做某些事情,因为这类函数对于您可以在其中使用的t语言函数有一些限制。

如果您想考虑另一个选项,SSRS将是最好的,因为它可以根据结果集创建一个包含您需要的所有列的矩阵,基本上它可以为您完成所有的工作。此报表可导出到excel。

其他选项是使用当前的行类型创建一个更符合逻辑的结果集,并通过数据透视表、宏、.

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2018-08-16 15:25:12

您必须使用动态SQL。从获取产品数量的SELECT开始,然后使用该数字在动态查询中创建列列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27280909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档