我下面的查询在mysql客户端(Heidi)中运行良好,但在Tableau中出现错误。我看过这里和Tableau社区站点,我看到的唯一建议是去掉分号。我已经试过了,但都没有用。我通过Tableau很好地连接到了我的数据库--我可以看到表和其他查询没有问题地运行。对于这里可能存在的问题,有什么想法吗?我运行的是Tableau 8.2。谢谢!
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; 发布于 2015-04-02 00:25:31
事实证明,当连接到mySQL数据库时,Tableau SQL不支持这种类型的查询。我收到的建议是尝试将其重新格式化为嵌套子查询。
这是我从Tableau的项目经理那里得到的答案,当我问是否可以使用上面的查询时:
“不能。它应该是返回结果集的单个查询。Tableau会将自定义SQL查询包装为subquery.If。不能这样处理SQL,您将得到错误。
我们在支持“初始SQL”的数据源上支持这种结构。例如Teradata,Aster...
它允许您预先运行任何SQL,创建临时表等,因此称为初始SQL。
然后,您可以编写一个查询作为连接的一部分,该查询将在"initial SQL“之后进行计算,并利用在初始SQL步骤中创建的对象。”
发布于 2015-03-29 13:03:15
我在使用自定义查询时也遇到了这个问题。我可以连接到数据库并使用gui引入数据,但我不能编写自定义查询。
下载mysql drivers就足以修复它。
我还有read,你应该下载版本3.51和5.X并使用32位版本,即使你运行的是64位的Tableau
发布于 2017-09-14 22:50:33
我在自定义SQL查询中遇到了类似的情况。我有一个仪表板开发的自定义SQL查询连接到数据库与程序ID过滤器- "SQL查询where程序id = 222“。我需要为另一个程序复制相同的仪表板"SQL Query where program id = 333".The查询最初在刷新数据源时不起作用。
解决方案-如果您正在使用extract,请将连接改回'live',创建一个新的extract。
https://stackoverflow.com/questions/29311251
复制相似问题