-1

我正在寻找一种方法,使 sql 语句在值大于 0 时将 AS 示例声明为 Yes,在从数据库检索数据时计算结果后,如果 0 则声明为 No。

到目前为止,这(不起作用)是我尝试过的。我希望我的试训有意义。我首先对结果进行选择计数planning_clientid为 0 或更多。如果结果为 0,我需要timesonplanning(可能在其工作后更改该名称)为No,如果高于Yes. 所以在稳定的计数结果中我需要是或否,这可能吗?

不工作的部分:

(CASE WHEN(SELECT COUNT(planning_clientid) FROM tbl_planning WHERE planning_afgehandeld = 0 AND a.client_id = planning_clientid)> 0 THEN 'Yes' ELSE 'No' END AS timesonplanning

整个声明:

   SELECT a.*, own1.naam AS resposible_btw, own2.naam AS resposible_client, (CASE WHEN(SELECT COUNT(planning_clientid) FROM tbl_planning WHERE planning_afgehandeld = 0 AND a.client_id = planning_clientid)> 0 THEN 'Yes' ELSE 'No' END AS timesonplanning FROM tbl_clients a LEFT JOIN gebruikers own1 ON own1.id = a.client_ownerob LEFT JOIN gebruikers own2 ON own2.id = a.client_owner

期望的结果:

timesonplanning 是(当计数大于 0 时) timesonplanning 否(当计数为 0 时)

4

1 回答 1

1

您在评论中指出的错误表示语法错误(尽管是荷兰语)。这确实是意料之中的,因为您包含的查询不会关闭您在关键字(之前使用的初始括号字符。CASE

通过删除之前的初始括号来解决这个问题CASE(因为在这种情况下它似乎不是特别必要),或者通过在关键字)之后插入一个右括号来正确关闭它:END

SELECT a.*, own1.naam AS resposible_btw, own2.naam AS resposible_client, (CASE WHEN(SELECT COUNT(planning_clientid) FROM tbl_planning WHERE planning_afgehandeld = 0 AND a.client_id = planning_clientid)> 0 THEN 'Yes' ELSE 'No' END) AS timesonplanning FROM tbl_clients a LEFT JOIN gebruikers own1 ON own1.id = a.client_ownerob LEFT JOIN gebruikers own2 ON own2.id = a.client_owner
于 2021-09-26T21:53:32.943 回答