2017-11-28 28 views
0

この検索クエリを試行しています。結果を見つけることができません。私はどこでミスをしたのか分かりません。SQLクエリ - SQL配列の検索結果で検索

Select * from loadcell_transaction_log where id = 

(SELECT max(id) as id1 
    FROM [addpro].[dbo].[loadcell_transaction_log] group by line2_count); 

このエラーが取得していますされています、

メッセージ512をレベル16、状態1、行2 サブクエリは複数の値を返しました。 =、!=、<、< =、>、> =、またはサブクエリが式として使用されている場合は、これは許可されません。

+0

投稿したクエリはMySQLではありません。また、エラーメッセージ。おそらくMSSQLです。正しいタグを使用してください。 – axiac

答えて

2

はこれを試してみてください:

Select * from loadcell_transaction_log where id IN 

(SELECT max(id) as id1 
    FROM [addpro].[dbo].[loadcell_transaction_log] group by line2_count); 

私は、サブクエリで複数の結果を可能キーワード 'IN' として '=' を交換してください。 MAX(ID)を持つことにより、グループを使用して

1

は、各line2_countのためにMAX(id)を返します。

select * from 
    (select log.*,row_number() over (partition by line2_count order by id desc) rn FROM [addpro].[dbo].[loadcell_transaction_log] as log) 
    where rn = 1; 

あなたがテーブル全体のデータにのみMAX(ID)をチェックしたい場合は、その後でグループを使用してはいけません@farbiondrivenが参照するin節を使用します。

+0

なぜdownvote ??説明が必要ですか? –

+0

おそらく、あなたはただコメントをして、すでに何が答えられたのかを言うためです。答えを複製することは意味をなさないので、あなたはおそらく異なる解決法を見つけて、人々は下降しません。 –

+0

となります。誰かが答える前に、私はすでに自分の答えを入力したので、それを投稿しました。次回は心に留めておきます。 :) –