2012-04-05 64 views
0

の作り方。SQL - 私は<strong>SQLコンパクト</strong></p> <p>それは基本的にこれらのクエリであるため、クエリを作成しようとしていますが、私は私は1つにそれらを組み合わせることができ期待していたこのクエリ

1.

SELECT schoolId,opponent 
FROM TEAM_SCHEDULE 
WHERE seasonId = " & i & " 
AND gameid = " & currentGame & " 
ORDER BY id" 

These are variables, trying to eliminate them at some point 
currentMatch(0) = schoolId 
currentMatch(1) = opponent 

2.

SELECT id 
FROM player 
WHERE school = " & currentMatch(0) & " 
AND starter = 'TRUE' 
AND game_id = " & currentGame & " 
ORDER BY weight 

3.

SELECT id 
FROM player 
WHERE school = " & currentMatch(1) & " 
AND starter = 'TRUE' 
AND game_id = " & currentGame & " 
ORDER BY weight 

私はこのような何かを行うことが考えていたが、私は理解しようとして問題に遭遇しました2つの学校をクエリに追加する方法を説明します。

 cmd.CommandText = "SELECT b.id, player.id" & 
          " FROM player b" & 
          " WHERE player.school = " & currentMatch(0) & 
          " OR player.school = " & currentMatch(1) & 
          " INNER JOIN player" & 
          " ON b.weight = player.weight" & 
          " ORDER BY player.weight" 

うまくいけば、任意の混乱を解消するためには、私がしようとしています:team_schedule、schoolIdと相手から

  1. セレクト2校(int型)。
  2. 両方の学校のすべての体重ですべての初心者を選択してください( 'True')。
  3. 各学校のスターターを体重に合わせてペアリングします。
  4. 各ペアを選択してデータを操作できます。

ありがとうございました!

これはこれはあなたのクエリであるかもしれない、 Error

+0

Argh !!そのようなsql値の文字列連結は悪です。 –

+0

Heh、最も重要なことに、私は自分のものを稼働させようとしています。私は前にパラメータを設定しようとしましたが、私は運がありませんでした。私はこれを手にしてからもう一度試してみる。 – Meowbits

答えて

1

クエリニコラからの解析エラーです。同じテーブルを複数回記述することはできますが、それぞれに異なる別名を付ける必要があります。この場合、プレイヤーはp1とp2の2倍になります。選手のウェイトのマッチもジョインの部分で行われますが、where句内にある可能性があります。

SELECT 
    schoolId, 
    opponent, 
    p1.id Player1, 
    p1.Weight Player1Weight, 
    p2.id Player2, 
    p2.Weight Player2Weight 
FROM TEAM_SCHEDULE 
inner join player p1 
    on TEAM_SCHEDULE.schoolId = p1.school 
and TEAM_SCHEDULE.GameID = p1.Game_id 
AND p1.starter = 'TRUE' 
inner join player p2 
    on TEAM_SCHEDULE.opponent = p2.school 
    and TEAM_SCHEDULE.GameID = p2.Game_id 
    AND p2.starter = 'TRUE' 
-- tricky part - do weights match perfectly 
-- or do you need additional weight range table? 
    AND p1.weight = p2.weight 
WHERE TEAM_SCHEDULE.seasonId = " & i & " 
AND TEAM_SCHEDULE.gameid = " & currentGame & " 
ORDER BY id 
+0

返事をありがとう!残念ながら、このクエリを "on ** TEAM_SCHEDULE **。schoolId = p1.school"で使用しようとすると、解析エラーが発生します。これは、SQLコンパクトの制限である可能性があります。 – Meowbits

+0

@Meowbitsエラーの内容を教えてください。私はここに明らかな誤りは見当たりません。 –

+0

申し訳ありませんが、エラーを表示するために私は元の質問を更新しました。 – Meowbits

関連する問題

 関連する問題