2016-10-03 22 views
-3

このクエリはどのようにエラーを返しますか?テーブルから最大値と最小値を取得できません

select CUSTOMER, TOTAL_VALUE 
from CUSTOMER, SALES 
where TOTAL_VALUE in (select max(TOTAL_VALUE), min(TOTAL_VALUE) 
from SALES) 

私は一人で最大(TOTAL_VALUE)または分(TOTAL_VALUE)を行うと、それは完璧に動作します。しかし、私はTOTAL_VALUEで最小数とTOTAL_VALUEで最大数を取得する必要があります。誰も私はなぜこのクエリが私のために動作しないのか理解できますか?サブクエリは2を返しているので、それがエラーを返した

select C.CUSTOMER, MIN(TOTAL_VALUE), MAX(TOTAL_VALUE) 
from SALES S 
join CUSTOMER C on S.Customer_ID=C.Customer_ID 
group by C.CUSTOMER 
order by C.CUSTOMER 
+2

*がエラー*を返す場合は、画面上に*エラー*が表示されます。私たちもそれを見ることができるように、あなたの投稿にそれを含めない理由は絶対にありません。問題を解決するために私たちに依頼しています。少なくとも私たちがそうするために使用するためにあなたの前に既にある情報を提供することが、少なくともあなたができることです。 –

+0

申し訳ありませんが私はあなたを怒らせた場合。できるだけ多くの情報を得ようとしました。エラーは長いページで、私はVMに入ってからコピー&ペーストできません。私は非常に多くの投票を得ることを意味しませんでした。私はちょうど私のクエリの構文に混乱していた。ごめんなさい。次回はもっとうまくいっていきます... –

答えて

0

(販売および顧客のテーブルの結合)、これを試してみてください(オペレータおよびネストされたサブクエリで使用して)を維持したいと思います値ではなく、1つです。ここに1つの修正があります:

select CUSTOMER, TOTAL_VALUE 
from CUSTOMER cross join 
    SALES join 
    (select max(TOTAL_VALUE) as maxt, min(TOTAL_VALUE) as mint 
     from sales 
    ) sm 
    where s.total_value in (sm.maxt, sm.mint); 

つまり、クエリは理にかなっていません。そこにあなたは全体の最小値と最大値の値とともに、すべての顧客のリストを取得します。

これはあなたの質問に答えます。別の質問がある場合は、にもう一度という質問のサンプルデータを入力してください。

+0

残念ながら、顧客はCustomerテーブルにしかありません。彼らはcustomer_idのプライマリキーを共有します –

+0

テーブルの結合に答えるための編集を行いました。 – BWS

1

:私は私が持っている構造

+0

情報が不足していることをお詫び申し上げます。私は非常に多くの投票を得ることを意味しませんでした..私はVMで働いていますし、問題のあるすべての情報をコピーするようにコピーと貼り付けを行うことができませんでした。ヘルプと成熟した答えに感謝します。 –

関連する問題