首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于不同的数据集创建数据集

基于不同的数据集创建数据集
EN

Stack Overflow用户
提问于 2017-08-16 23:58:45
回答 1查看 30关注 0票数 0

我一直在寻找,到目前为止还没有弄清楚这是否可能。

假设我有一个数据源,SOURCE1。我用它创建了一个数据集,SET1。现在,我希望能够创建另一个使用SET1作为数据源的数据集。我有没有办法做到这一点?我希望能够运行一系列一起工作的查询来构建最终结果,该结果将被报告。

例如: SET1 = SELECT * FROM SOURCE1 WHERE ...

SET2 = SELECT * FROM SET1 WHERE ...

否则,唯一的选择是继续嵌入查询吗?如果可能的话,我宁愿避免这样做,因为它会变得非常不可读,因为我必须运行至少12个彼此建立在一起的查询。

SET 2= SELECT * FROM (SELECT * FROM SET 1 WHERE ...)哪里..。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-17 21:24:21

我猜(不知道你的查询),你可以把它写成一个查询。惰性方法只是在批处理中运行每个查询,将每个结果输出到一系列临时表中,然后连接临时表以获得最终输出。If可能不是很有效,但它可以工作。最好的解决方案几乎肯定是从头开始重写它,尽管Access SQL不如T-SQL那么强大或灵活。

所以你需要像这样的东西..

代码语言:javascript
复制
SELECT * INTO #t1 FROM myTable WHERE blah blah...
SELECT * INTO #t2 FROM myOtherTable WHERE blah blah...
SELECT * 
    FROM #t1 a
    JOIN #t2 b on a.myField = b.myField

您可以将此查询直接放入数据集查询中。它会将每个查询的结果转储到临时表(#t1,#t2等)中,然后最后一条语句将把它们全部连接起来。

如果您计划在多个位置使用单个查询,则还可以考虑为每个查询创建一个视图(如果可能),然后只需将视图连接到SSRS数据集查询中,即可获得最终结果。

在SSMS中,使用如下内容创建视图

代码语言:javascript
复制
CREATE VIEW AccessQuery1 AS
SELECT * FROM myTable where blah blah...

CREATE VIEW AccessQuery2 AS
SELECT * FROM myOtherTable where blah blah...

那么,在SSRS中,您的数据集查询将如下所示

代码语言:javascript
复制
SELECT * 
    FROM AccessQuery1 a
    JOIN AccessQuery2  b on a.myField = b.myField

希望这能帮上忙。

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

https://stackoverflow.com/questions/45718204

复制
相关文章

相似问题

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