SQLコードを取得してカウントフィールドを挿入し、クエリを実行して行数を返す関数があります。目的は、動的 SQL コードを作成し、コードに関係なくレコード数を取得できるようにすることです。これは、レジストリ フィルター ウィンドウで使用し、ユーザーがいくつでも追加できるため、どのコードが生成されるかがわからないためです。彼/彼女が望むようにフィルタリングします。
しかし、節を使用すると、多くの接続group by
で使用されているためにメイン レジストリが表示される回数をカウントしているため、結果が間違っています。join
上記のコードの結果は、結果としての列を含む 1 つの行のみである必要がありますが、最初の行に a があり、他の行に a がある10
最初の列を持つ新しいテーブルを取得します。2
1
句を外すとカウント結果としてgroup by
を受け取りますが、最初の行は 2 回カウントされます。11
単一の行と正しい数を取得するにはどうすればよいですか?
SELECT
COUNT(*) QUERYRECORDCOUNT, // this line appears only in the Count() function
ARTISTA.*,
CATEGORIA.NOME AS CATEGORIA,
ATIVIDADE.NOME AS ATIVIDADE,
LOCALIDADE.NOME AS CIDADE,
MATRICULA.NUMERO AS MAP
FROM
ARTISTA
LEFT JOIN PERFIL ON PERFIL.REGISTRO = ARTISTA.ARTISTA_ID
LEFT JOIN CATEGORIA ON CATEGORIA.CATEGORIA_ID = PERFIL.CATEGORIA
LEFT JOIN ATIVIDADE ON ATIVIDADE.ATIVIDADE_ID = PERFIL.ATIVIDADE
LEFT JOIN LOCALIDADE ON LOCALIDADE.LOCALIDADE_ID = ARTISTA.LOCAL_ATIV_CIDADE
LEFT JOIN MATRICULA ON MATRICULA.REGISTRO = ARTISTA.ARTISTA_ID
WHERE
((ARTISTA.SIT_PERFIL <> 'NORMAL') AND (ARTISTA.SIT_PERFIL <> 'PRIVADO'))
GROUP BY
ARTISTA.ARTISTA_ID
ORDER BY
ARTISTA.ARTISTA_ID;