SQL(MySQLと他のシステムは)基本的には、行のセットで動作する前に、データベース上の複雑なクエリを実行するために必要とされていません。だから、私は推測させて、そのようなセットの点であなたの要件を再作成しようとします。
は、あなたがこのSQLを実行する一連の仕様を翻訳する
「私は、彼らが2014年の最大値よりも500以上大きい2015年のためのID
値のセットをしたい」
SELECT ID
FROM table
WHERE YEAR = '2015'
AND ID > (SELECT MAX(ID) FROM table WHERE YEAR='2014')
説明:
これは、一致する各行からID値だけを選択します。各行にIDを持つ結果セットが得られます。
SELECT ID
これは、セットの開始点となるテーブルの名前を指定します。
FROM table
これは、これはトリックである2015
WHERE YEAR = '2015'
以外の任意の年のためのすべての行をフィルタリングします。それはその後、2014年
AND ID > (SELECT MAX(ID) FROM table WHERE YEAR='2014')
で最大規模よりも値だけで500以上の大きなを選択するためにあなたの2015 ID値をフィルタ2014年のためのテーブルで最大のID値を見つけるために
別 select文を実行します
今、私はあなたが望むものについて間違っていると推測しているかもしれません。しかし、この議論があなたの仕様をSQLで扱うことができるという点で考えるのに役立つことを願っています。
if文についてもう少し明確にすることはできますか? 2015年から2014年の間の「違い」はどういう意味ですか? –
いくつかのサンプルデータを共有できますか?達成しようとしていることが少し不明です。 – Shaharyar