簡體   English   中英

選擇++連接時的情況,MYSQL

[英]Select with case when + join, MYSQL

在以下情況下,你們可以為我提供幫助嗎? 我想選擇並更改結果:

我的代碼如下:

$USER_STORY = $this->lang->line('application_status_change_user_story');
$TO_DO = $this->lang->line('application_status_change_to_do');
$IN_PROGRESS = $this->lang->line('application_status_change_in_progress');
$DONE = $this->lang->line('application_status_change_done');
$UNDONE = $this->lang->line('application_status_change_undone');

    SELECT sum(project_has_tasks.estimated_hours) as val, project_has_tasks.name, 
    project_has_tasks.start_date,
    project_has_tasks.due_date,
    project_has_tasks.progress,
    TIME_FORMAT(SEC_TO_TIME(sum(project_has_tasks.time_spent)),'%k.%i') 
    as total_time, users.id, users.firstname, users.lastname,(case
             when 'user_story' then '$USER_STORY'
             when 'to_do' then '$TO_DO'
             when 'in_progress' then '$IN_PROGRESS'
             when 'done' then '$DONE'
             when 'undone' then '$UNDONE'
             else 'NOTHING'
          end) as status
    FROM project_has_tasks
    RIGHT JOIN users ON project_has_tasks.user_id
     = users.id WHERE project_has_tasks.project_id ='99' 
    GROUP BY project_has_tasks.id ASC

進行哪些修改才能獲得適當的結果? 現在,我在狀態列中什么都沒有,但是沒有錯誤。

我認為您的case陳述有誤,沒有條件在檢查,因此僅返回最后的else陳述

SELECT sum(project_has_tasks.estimated_hours) as val, project_has_tasks.name, 
project_has_tasks.start_date,
project_has_tasks.due_date,
project_has_tasks.progress,
TIME_FORMAT(SEC_TO_TIME(sum(project_has_tasks.time_spent)),'%k.%i') 
as total_time, users.id, users.firstname, users.lastname,(case
         when project_has_tasks.status = 'user_story' then '$USER_STORY'
         when project_has_tasks.status = 'to_do' then '$TO_DO'
         when project_has_tasks.status = 'in_progress' then '$IN_PROGRESS'
         when project_has_tasks.status = 'done' then '$DONE'
         when project_has_tasks.status = 'undone' then '$UNDONE'
         else 'NOTHING'
      end) as status
FROM project_has_tasks
RIGHT JOIN users ON project_has_tasks.user_id
 = users.id WHERE project_has_tasks.project_id ='99' 
GROUP BY project_has_tasks.id ASC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM