0

タスク結果 HelloWorld1(0) HelloWorld2(2) HelloWorld3(1) HelloWorld4(5) に割り当てられたログイン ユーザーに対してのみ、オープンまたは保留中のタスクの数を確認する Sql スクリプトを作成したい

SELECT Projects.projectID,
    Projects.projectName + ' ' + '(' + CONVERT(NVARCHAR, COUNT(Projects_tasks.taskID)) + ')' AS Project
  FROM Projects
  LEFT JOIN Projects_tasks ON Projects.projectID = Projects_tasks.projectID
 INNER JOIN Users_projects ON Projects.projectID = Users_projects.projectID
 INNER JOIN Tasks ON Projects_tasks.taskID = Tasks.taskID
 INNER JOIN Users_Tasks ON Tasks.taskID = Users_Tasks.TaskID
 WHERE Users_Tasks.userID = @userID
   AND Tasks.status = 'Open'
   AND Tasks.status = 'Onhold'
 GROUP BY Users_projects.userID,
          Projects.projectName,
          Projects.projectID,
          Users_Tasks.userID

ここに画像の説明を入力

4

3 に答える 3

1

あなたが持っている:

AND (Tasks.status = 'Open' AND Tasks.status = 'Onhold') 

これは真実ではありません。タスクが同時に両方の値を持つことはできません。あなたがしたい:

AND (Tasks.status = 'Open' OR Tasks.status = 'Onhold') 

さらに良いことに、次を使用しますIN

AND (Tasks.status IN ('Open', 'Onhold') )
于 2012-09-20T19:15:12.857 に答える
0

一致する行はありません:

(Tasks.status = 'Open' AND Tasks.status = 'Onhold')

試す

(Tasks.status = 'Open' OR Tasks.status = 'Onhold')

または:

Tasks.status in ('Open', 'Onhold')
于 2012-09-20T19:15:29.613 に答える
0

すでにコメントしたように、OpenまたはOnHoldのいずれかのみである可能性があるため、AND句は満たすことができません。次のコードを使用します。Task.Status

SELECT Projects.projectID,
    Projects.projectName + ' ' + '(' + CONVERT(NVARCHAR, COUNT(Projects_tasks.taskID)) + ')' AS Project
  FROM Projects
  LEFT JOIN Projects_tasks ON Projects.projectID = Projects_tasks.projectID
 INNER JOIN Users_projects ON Projects.projectID = Users_projects.projectID
 INNER JOIN Tasks ON Projects_tasks.taskID = Tasks.taskID
 INNER JOIN Users_Tasks ON Tasks.taskID = Users_Tasks.TaskID
 WHERE Users_Tasks.userID = @userID
   AND (Tasks.status = 'Open' OR Tasks.status = 'Onhold')
 --also this code can be used: 
 --AND Tasks.status in ('Open', 'Onhold')
 GROUP BY Users_projects.userID,
          Projects.projectName,
          Projects.projectID,
          Users_Tasks.userID
于 2012-09-20T19:27:43.640 に答える