SQL Server を使用して作業しているクエリについて少し助けが必要です。
クエリは、特定のカテゴリの検索フィールド情報を取得し、それを使用して、そのカテゴリ内のプロファイルの数で並べ替えられたプロファイルのリストを返します。
wn.sqlcheck フィールドに含まれる情報を使用してクエリを実行する必要があります。次に、sectionCount で並べ替えます。
クエリ
SELECT wc.name,
(SELECT count(*) FROM facilities WHERE wc.sqlcheck) AS sectionCount
FROM webcategories wc
WHERE wc.parentid = 1
ORDER BY sectionCount
webcategories の例
parentid | name | sqlcheck
-----------------------------------------
1 | categorytitle | (highcaretotalnumberbeds > 0 AND highcaredoubleroomsyn = 1)
1 | categorytitle2 | (othernumberbeds > 0 AND otherdoubleroomsyn = 1)
現在、ストアド プロシージャを使用しています
SET @sqlcheck = (select sqlcheck from webcategories where parentid=1)
EXEC('SELECT wc.id, wc.name,
(SELECT count(id) FROM facilities WHERE '+@sqlcheck+') AS sectionCount
FROM webcategories wc
WHERE wc.parentid = 1
ORDER BY sectionCount')
このエラーが発生します:
サブクエリが複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません。
これは、parentid = 1 のサブクエリから複数の行が返されるためです。