我正在一个名为Filemaker的程序中做一些工作,它有一个淡化的sql函数。它没有GROUP_CONCAT
函数,GROUP BY
子句需要SELECT
中提到的所有字段。
是否还有其他方法可以获得相同的结果:
SELECT id_candidate, GROUP_CONCAT(id_award SEPARATOR ', ')
FROM nomination
GROUP BY id_candidate
结果
5 113, 116
6 109, 113, 114, 117, 120
7 104, 113
8 113
9 101, 104, 113, 118
10 100, 114, 118
注意:如果需要完成多个选择,我可以存储一个SELECT
的结果并在另一个中使用它。因此,我可以使用SELECT DISTINCT (id_candidate)
的结果,然后在…WHERE IN ({var})
答案 0 :(得分:1)
您已经回答了自己的问题 - 您无法在单个语句中在FileMaker SQL中执行此操作 - 它对子查询的支持非常有限。
我可以使用SELECT DISTINCT(id_candidate)的结果然后 在...中调用它({var})
我建议做相反的事情。将计算查询存储在FileMaker中的记录级别,例如一个名为" awards"的计算字段:
ExecuteSQL ( "SELECT id_award
FROM nomination
WHERE id_candidate = ?" ;
"" ; ", " ; nomination::id_candidate )
然后您可以运行报告:
ExecuteSQL ( "SELECT id_candidate, awards
FROM nomination
GROUP BY id_candidate" ;
"" ; "" )
这应该允许您拥有所需的输出