私は作業中の人員に関係なく、完了したジョブの数を取得しようとしています。私がする必要があるのは、重複を取り除くことです。行全体が重複しないので、DISTINCTはここでは機能しません。 JobCode、JobType TaskTime、および曜日に基づいて重複がある場合は除外したいと思います。だから私のテーブルには、次のようになります。ユニークな値だけを返してください
JobCode JobType TaskTime EmployeeID M Tu W Th F Sa Su
==================================================================
1800 1 06:49 101 1 1 1 1 1 0 0
1800 1 06:49 102 1 0 0 0 0 0 0
1800 1 07:04 101 1 1 1 1 1 0 0
1800 1 07:26 101 1 1 1 1 1 0 0
1800 1 07:49 101 1 1 1 1 1 0 0
1800 2 15:55 101 1 1 1 1 1 0 0
1800 1 16:20 101 1 1 1 1 1 0 0
1800 1 16:50 101 1 1 1 1 1 0 0
1800 2 16:55 101 1 1 1 1 1 0 0
私のSQLクエリのデータが返され、この
SELECT t1.JobCode, t1.JobType,
t1.M, t1.Tu, t1.W, t1.Th, t1.F, t1.Sa, t1.Su,
SUM(t1.M + t1.Tu + t1.W + t1.Th + t1.F + t1.Sa + t1.Su) as Totals
FROM Table1 AS t1
JOIN Table1 AS t1_overlap ON
t1_overlap.EmployeeID = t1.EmployeeID AND
t1_overlap.JobType = t1.JobType AND
t1_overlap.TaskTime = t1.TaskTime
AND
(
(t1.M = 1 AND t1_overlap.M = t1.M) OR
(t1.Tu = 1 AND t1_overlap.Tu = t1.Tu) OR
(t1.W = 1 AND t1_overlap.W = t1.W) OR
(t1.Th = 1 AND t1_overlap.Th = t1.Th) OR
(t1.F = 1 AND t1_overlap.F = t1.F) OR
(t1.Sa = 1 AND t1_overlap.Sa = t1.Sa) OR
(t1.Su = 1 AND t1_overlap.Su = t1.Su)
)
GROUP BY t1.JobCode, t1.JobType, t1.M, t1.Tu, t1.W, t1.Th, t1.F, t1.Sa, t1.Su
のようなものです私は何を見たいことだけ一意の値である。この
JobCode JobType M Tu W Th F Sa Su Totals
==================================================
1800 1 1 0 0 0 0 0 0 1
1800 1 1 1 1 1 1 0 0 30
1800 2 1 1 1 1 1 1 1 10
のようなものです従業員101がその同じ日に同じ仕事をしているのを見ているので、従業員102がMだけで仕事をしていることを示す最初の行は望んでいません。それでは、私が代わりに見てみたいことは以下の通りです:
JobCode JobType M Tu W Th F Sa Su Totals
==================================================
1800 1 1 1 1 1 1 0 0 30
1800 2 1 1 1 1 1 0 0 10
本当に私は曜日を確認する必要はありません、私はちょうど私が返されていただきました!見ることができ、ここでそれらを示しています。私は実際に出力を参照する必要があるのは、JOBTYPE JOBCODEであり、次のように合計:
JobCode JobType Totals
======================
1800 1 30
1800 2 10
ヘルプは大歓迎です。
従業員101が102よりもどのように優先されますか?どのように「1」がそのジョブコード/タイプの合計に含まれないのでしょうか?ここでの論理は何ですか? – JNevill
@SeanLange別のフォーラムのメインページにリダイレクトしないでください。それは役に立たない回答です。私はここに投稿する前にいくつかの場所を検索して、ちょうど私が探しているものを見つけていない。 – aantiix
間違ったリンクを投稿したためですhttp://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –