首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的自定义SQL查询(在Tableau外运行良好)在Tableau中失败?

为什么我的自定义SQL查询(在Tableau外运行良好)在Tableau中失败?
EN

Stack Overflow用户
提问于 2015-03-28 06:30:46
回答 3查看 12.4K关注 0票数 2

我下面的查询在mysql客户端(Heidi)中运行良好,但在Tableau中出现错误。我看过这里和Tableau社区站点,我看到的唯一建议是去掉分号。我已经试过了,但都没有用。我通过Tableau很好地连接到了我的数据库--我可以看到表和其他查询没有问题地运行。对于这里可能存在的问题,有什么想法吗?我运行的是Tableau 8.2。谢谢!

代码语言:javascript
复制
SET @sql=NULL;

SELECT
Group_Concat(Distinct CONCAT(
'MAX(IF(wsd.cid = ''', wc.cid, ''', wsd.data, NULL)) AS    ''',wc.name,'',''''))
INTO @sql
FROM webform_component wc
WHERE wc.nid = 107;

SET @sql = Concat('SELECT wsd.sid,',@sql,'
FROM webform_submitted_data wsd
LEFT Join webform_component AS wc ON wsd.cid=wc.cid
WHERE wsd.nid = 107 AND wsd.sid >= 14967
GROUP BY wsd.sid');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt; 
EN

回答 3

Stack Overflow用户

发布于 2015-04-02 00:25:31

事实证明,当连接到mySQL数据库时,Tableau SQL不支持这种类型的查询。我收到的建议是尝试将其重新格式化为嵌套子查询。

这是我从Tableau的项目经理那里得到的答案,当我问是否可以使用上面的查询时:

“不能。它应该是返回结果集的单个查询。Tableau会将自定义SQL查询包装为subquery.If。不能这样处理SQL,您将得到错误。

我们在支持“初始SQL”的数据源上支持这种结构。例如Teradata,Aster...

它允许您预先运行任何SQL,创建临时表等,因此称为初始SQL。

然后,您可以编写一个查询作为连接的一部分,该查询将在"initial SQL“之后进行计算,并利用在初始SQL步骤中创建的对象。”

票数 9
EN

Stack Overflow用户

发布于 2015-03-29 13:03:15

我在使用自定义查询时也遇到了这个问题。我可以连接到数据库并使用gui引入数据,但我不能编写自定义查询。

下载mysql drivers就足以修复它。

我还有read,你应该下载版本3.51和5.X并使用32位版本,即使你运行的是64位的Tableau

票数 1
EN

Stack Overflow用户

发布于 2017-09-14 22:50:33

我在自定义SQL查询中遇到了类似的情况。我有一个仪表板开发的自定义SQL查询连接到数据库与程序ID过滤器- "SQL查询where程序id = 222“。我需要为另一个程序复制相同的仪表板"SQL Query where program id = 333".The查询最初在刷新数据源时不起作用。

解决方案-如果您正在使用extract,请将连接改回'live',创建一个新的extract

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

https://stackoverflow.com/questions/29311251

复制
相关文章

相似问题

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