次のクエリがありますが、結果は生成されませんが、エラーはありません。「注目のプレス リリース」ではなく、「お知らせ」などの特定のタイプのすべてのページを選択しようとしています。
SELECT parent.* FROM [cq:Page] AS parent INNER JOIN [nt:base]
AS child ON ISCHILDNODE(child,parent) WHERE ISDESCENDANTNODE(parent, '/content/acme/en_US/site-content/content-modules/resources/press-releases')
AND (NOT CONTAINS(child.[cq:tags], 'acme- www:FeaturedResources/FeaturedPressRelease*'))
AND (CONTAINS(child.[cq:tags], 'acme-www:PressReleaseType/Announcement'))
AND child.[pressReleaseDate] > CAST('2015-01-01T00:00:00.000Z' AS DATE)
AND child.[pressReleaseDate] < CAST('2016-01-01T00:00:00.000Z' AS DATE)
order by child.[jcr:title]
「AND (NOT CONTAINS ...」という行を削除すると、正しい結果が得られます。また、その行を元に戻し、「AND (CONTAINS( ...」という行を削除すると、正しい結果が得られます。ただし、両方の行があると、プレスリリースではなく、アナウンスのようなものであるなど、限定すべきページがあります。
クエリが機能しない理由を知っている人はいますか? 私は SQL2 を初めて使用しますが、Web 上で同様の例を見つけることができず、一般的な用語で構文を説明しているだけです。
ありがとう!