1

表示されているすべてのものを選択するSQLクエリを作成しようとしています...しかし、合計時間!=0の条件があります。これは機能しますが、合計時間!=0の条件を除外する条件をもう1つ追加する必要があります。

基本的に、次のようなクエリが必要です。AND project_timecard_task_days.total_hours!= 0 UNLESS task.type = "Fixed Rate"

したがって、ステートメントの「ない限り」の部分が問題です。どんな助けでも大歓迎です!

SELECT project_timecard_tasks.task_id, 
       project_timecard_tasks.datetime, 
       project_timecard_tasks.total_hours, 
       project_timecard_tasks.user_id, 
       project_timecard_tasks.project_id, 
       users.user_id, 
       users.firstname, 
       users.lastname, 
       users.billingrate, 
       tasks.id, 
       tasks.taskname, 
       tasks.billingoption, 
       tasks.fixedrate, 
       tasks.rate_schedule_id, 
       hourlyrates.rate_schedule_id, 
       hourlyrates.hourlyrate, 
       project_timecard_tasks.project_task_id, 
       project_timecard_task_days.project_task_id, 
       project_timecard_task_days.project_task_day_id, 
       project_timecard_task_days.total_hours, 
       project_timecard_task_days.comments, 
       project_timecard_task_days.invoiced 
FROM   project_timecard_tasks 
       JOIN users 
         ON project_timecard_tasks.user_id = users.user_id 
       JOIN tasks 
         ON project_timecard_tasks.task_id = tasks.id 
       JOIN project_timecard_task_days 
         ON project_timecard_tasks.project_task_id = 
            project_timecard_task_days.project_task_id 
       JOIN hourlyrates 
         ON project_timecard_tasks.billing_code_id = hourlyrates.hourly_rate_id 
WHERE  project_timecard_tasks.project_id = '$jobNumber' 
       AND project_timecard_task_days.total_hours != 0 
       AND project_timecard_task_days.invoiced != 1 
4

3 に答える 3

3
...AND (project_timecard_task_days.total_hours != 0 OR task.type ="Fixed Rate")...
于 2012-07-30T15:30:58.440 に答える
1

使用するだけORです:

WHERE
(
  project_timecard_tasks.project_id = '$jobNumber' 
  AND 
  project_timecard_task_days.total_hours != 0 
  AND 
  project_timecard_task_days.invoiced != 1 
)
OR
  task.type ="Fixed Rate"

またはおそらく(あなたがあなたの条件をどのように望むかに応じて):

WHERE
  project_timecard_tasks.project_id = '$jobNumber' 
  AND 
  project_timecard_task_days.invoiced != 1 
  AND 
  (
    project_timecard_task_days.total_hours != 0
    OR
    task.type ="Fixed Rate"
  )
于 2012-07-30T15:30:47.880 に答える
0

ORステートメントを使用します。

...
AND (project_timecard_task_days.total_hours != 0 OR task.type = "Fixed Rate")
AND...
于 2012-07-30T15:31:36.320 に答える