1

まだクエリの作成に慣れようとしているところですが、問題が発生しました。

Select count(region)
where (regionTable.A=1) in
(
select jxn.id, count(jxn.id) as counts, regionTable.A
from jxn inner join
               V on jxn.id = V.id inner join
               regionTable on v.regionID = regionTable.regionID
group by jxn.id, regionTable.A
)

内側のクエリは、1 つの列に ID 番号、テーブルに表示される回数、領域 A にある場合はビット属性を示します。外側のクエリは機能しますが、エラーはincorrect syntax near the keyword IN. 内部クエリのうち、リージョン A に何人いるかを教えてください

4

4 に答える 4

1

クエリにいくつかの構文エラーがあります。あなたのコメントに基づいて、サブクエリは必要ないと思います。これが必要です:

select jxn.id, count(jxn.id) as counts, regionTable.A
from jxn inner join
               V on jxn.id = V.id inner join
               regionTable on v.regionID = regionTable.regionID
where regionTable.A = 1
group by jxn.id, regionTable.A

これは次のようにさらに単純化できます。

select jxn.id, count(jxn.id) as counts
     , 1 as A                             --- you can even omit this line
from jxn inner join
               V on jxn.id = V.id inner join
               regionTable on v.regionID = regionTable.regionID
where regionTable.A = 1
group by jxn.id
于 2012-05-17T20:17:27.940 に答える
1

クエリの where の前にテーブル名を指定する必要があります

  Select count(region)
    from table
    where (regionTable.A=1) in

そして、それらのいずれかを選択する必要があります。

where regionTable.A = 1 

また

where regionTable.A in (..)
于 2012-05-17T20:03:58.557 に答える
0

次の行が原因でエラーが発生しています。

where (regionTable.A=1)

where in句で条件を指定することはできません。列名のみにする必要があります

于 2012-05-17T19:58:54.643 に答える
0

このようなものがあなたが望むものかもしれません:

SELECT COUNT(*)
FROM 
    (
        select jxn.id, count(jxn.id) as counts, regionTable.A 
        from 
            jxn inner join
            V on jxn.id = V.id inner join
            regionTable on v.regionID = regionTable.regionID 
        group by jxn.id, regionTable.A
    ) sq
WHERE sq.a = 1
于 2012-05-17T20:06:29.690 に答える