0

別の方法でも実行できますが、サブクエリを使用して次のことを実行したいと思います。大きなジャンクションテーブルをクエリしています。そのクエリ内で、X回以上出現するすべての郡名のカウントを取得したいと思います。

select v.id, k.countyName
from v inner join k on v.countyID=k.countyID inner join
icd_jxn on v.id = icd_jxn.id
where k.countyName in
(select count(k.countyName) from k
having count(k.countyName) > 10)

与えられたエラーはconversion failed when converting the varchar value X to intです。変換は行いません。郡名がテーブルに表示される回数だけが必要です。

ここに画像の説明を入力してください

4

4 に答える 4

3

内部クエリはカウントのみを返します。クエリは次のようにする必要があります。

select v.id, k.countyName 
from v inner join k on v.countyID=k.countyID inner join 
icd_jxn on v.id = icd_jxn.id 
where k.countyName in 
(select k.countyName from k 
group by k.countyName
having count(k.countyName) > 10) 
于 2012-05-18T13:49:03.343 に答える
0

あなたは以下を試すことができます

select v.id, k.countyName
from v inner join k on v.countyID=k.countyID 
       inner join icd_jxn on v.id = icd_jxn.id
where k.countyName in
(
    select k.countyName from k
    group by k.countyName
    having count(k.countyName) > 10
)

問題は、INサブクエリでタイプを選択しcountてチェックしたことです。varcharしたがって、を選択する必要がありますcountyName

于 2012-05-18T13:49:51.150 に答える
0

国名がカウントのどこにあるかを確認しようとしています(したがって、varcharを整数と比較します)

select v.id, k.countyName
from v 
inner join k on v.countyID=k.countyID 
inner join icd_jxn on v.id = icd_jxn.id
where k.countyName in
(
   select k.countyName as c from k
   having count(k.countyName) > 10 
   group by k.countyName
)
于 2012-05-18T13:50:20.417 に答える
0

クエリでは、k.CountryNamevarchar型をCountエラーの原因であるint型と比較しています。これを試して

select v.id, k.countyName
from v inner join k on v.countyID=k.countyID inner join
icd_jxn on v.id = icd_jxn.id
where k.countyName in
(select k.countyName from k
group by k.countyName
having count(k.countyName) > 10)
于 2012-05-18T13:50:39.850 に答える