2017-09-25 6 views
0

トーナメント名、審判名、日付、すべてのトーナメントのリストを含むビューを含むテーブル(GamesSchedule)があります。私が必要とするのは、特定の期間に特定の審判のための各トーナメントでの試合の数です。審判が働いていないトーナメントがあるかどうかを確認するにはnullが必要です(そして、 )適切に私を助け答えを見つけました:テーブルとビューから選択します。左のjoinとwhere句

Tourney | Games 
---------------- 
Mens 1st | 10 
Womens 1st | 7 
Cup  | 0 
Youth  | 3 
Mens 2nd | 2 
Womens 2nd | 0 
---------------- 

これは、残念ながら、私は審判が6のうちのゲーム(これだけの4行、上記のように無カップの試合を)働いているだけのトーナメントを提供します

SELECT t.Tourney, COUNT(t.Tourney) AS Games 
     FROM GamesSchedule t 
RIGHT JOIN Tournaments v 
     ON t.Tourney = v.Tourney 
    WHERE Date > 42603 AND Date < 43011 
     AND (D1='Joe Smith' OR D2='Joe Smith' OR D3='Joe Smith') 
    GROUP BY t.Tourney; 
+0

GamesScheduleテーブルの構造(少なくともこのクエリに関連するフィールド)と取得する列のような詳細情報を提供する必要があります。 –

答えて

0

WHEREからJOINに条件を移動してみてください:

SELECT t.Tourney, COUNT(t.Tourney) AS Games 
FROM GamesSchedule t 
RIGHT JOIN Tournaments v 
    ON t.Tourney = v.Tourney 
AND Date > 42603 
AND Date < 43011 
AND 'Joe Smith' IN (D1, D2, D3) 
GROUP BY t.Tourney; 
+0

閉鎖しているがシガーはない。結果にはもう1つのラインがありますが、トーナメントの名前は含まれていません(ゲームの数は0にすぎません)。さらに多くのものが必要です。トーナメントの総数は実際には20を超えています。アドバイスありがとうございますが、私はまだそこにはいません。 – GFS

+0

@GFS http://rextester.comデモを準備してください。私はあなたの要件にこのクエリを調整できると確信しています。 – lad2025

関連する問題