0

検索関数technicalの句をどこに配置できますか?という名前のテーブルがあります。WHERE

挿入したいWHERE t1.blklot LIKE '01/01'- この行にはそれらのみが表示されますblklot = 01/01

SELECT * 
FROM technical t1
JOIN (
    SELECT blklot, MAX(date_update) AS MAXDATE
    FROM technical
    GROUP BY blklot
) t2 ON t1.blklot = t2.blklot
AND t1.date_update = t2.MAXDATE
ORDER BY t1.blklot
4

2 に答える 2

1

実際には、サブクエリまたは外部クエリのいずれかに配置できます。サブクエリでは、条件のテーブル エイリアスを変更する必要があります。条件は集計に使用されるキーにあるため、どちらの場所でも機能します。

onまたは、次の句に入れることもできます。

ON t1.blklot = t2.blklot and
   t1.date_update = t2.MAXDATE and
   t1.blklot LIKE '01/01'

編集:

実際には、サブクエリに入れます。これが最も効率的な方法です。

SELECT * 
FROM technical t1 JOIN
     (SELECT blklot, MAX(date_update) AS MAXDATE
      FROM technical
      WHERE blklot LIKE '01/01'
     ) t2
     ON t1.blklot = t2.blklot AND
        t1.date_update = t2.MAXDATE
ORDER BY t1.blklot;

値を 1 つだけ選択しているため、group byは必要ありません。

于 2014-02-01T15:38:15.720 に答える
0

このようにしてみてください

SELECT * 
FROM technical t1
  JOIN (
      SELECT blklot, MAX(date_update) AS MAXDATE
      FROM technical
      GROUP BY blklot
      )t2 ON t1.blklot = t2.blklot
      AND t1.date_update = t2.MAXDATE
WHERE t1.blklot LIKE '01/01
ORDER BY t1.blklot

OR ON句で条件を作る

SELECT * 
FROM technical t1
  JOIN (
      SELECT blklot, MAX(date_update) AS MAXDATE
      FROM technical
      GROUP BY blklot
      )t2 ON t1.blklot = t2.blklot
      AND t1.date_update = t2.MAXDATE
      AND t1.blklot LIKE '01/01
ORDER BY t1.blklot
于 2014-02-01T15:39:49.643 に答える