私は現在、私たちのロギングに関する小さなレポートを作成しようとしていますが、期待通りに動作しません。クエリが完全に変更された結果を別のLIKE句に追加すると、クエリは正常に動作しますか?
私はLIKE句が1つしかないときにうまく動作するクエリを作成しましたが、クエリにORを追加すると、結果が不正になります。なぜこれが起こっているのか分かりません。私はグルーピングや何かが欠けていますか?ここで
は、それが動作するクエリです:ここでは
select
s.SupportCode
, s.DateTaken
, s.TakenBy
, s.AllocatedTo
--, p.IndustrySector
from
Support s
join Project p on p.ProjectCode = s.ProjectCode
where
s.DateTaken >= dateadd(month, datediff(month, 0, dateadd(m, -6, current_timestamp)),0)
and s.SupportAction like '%RMC%'
は、私が欲しいものである、その結果である:私は他のLIKE句を追加したときにここで
╔══════════╦═════════════════════════╦═════╦═════╗
║ 00074062 ║ 2017-01-25 00:00:00.000 ║ JCH ║ JCH ║
║ 00073482 ║ 2016-12-14 00:00:00.000 ║ ROA ║ FJ ║
║ 00072764 ║ 2016-11-10 00:00:00.000 ║ ROA ║ ROA ║
║ 00072660 ║ 2016-11-03 00:00:00.000 ║ FJ ║ FJ ║
║ 00073818 ║ 2017-01-11 00:00:00.000 ║ ROA ║ FJ ║
║ 00070844 ║ 2016-09-14 00:00:00.000 ║ ROA ║ FJ ║
║ 00070988 ║ 2016-09-22 00:00:00.000 ║ ROA ║ ROA ║
╚══════════╩═════════════════════════╩═════╩═════╝
はクエリです:
:ここselect
s.SupportCode
, s.DateTaken
, s.TakenBy
, s.AllocatedTo
--, p.IndustrySector
from
Support s
join Project p on p.ProjectCode = s.ProjectCode
where
s.DateTaken >= dateadd(month, datediff(month, 0, dateadd(m, -6, current_timestamp)),0)
and s.SupportAction like '%RMC%'
or s.SupportAction like '%FJ%'
or s.SupportAction like '%DG%'
or s.SupportAction like '%VIC%';
は結果であり、
╔══════════╦═════════════════════════╦═════╦══════╗
║ 00031254 ║ 1996-11-04 00:00:00.000 ║ KGB ║ KGB ║
║ 00031279 ║ 1996-11-12 00:00:00.000 ║ TB ║ TMB ║
║ 00031296 ║ 1996-11-18 00:00:00.000 ║ SPB ║ BJR ║
║ 00031402 ║ 1997-01-07 00:00:00.000 ║ AJS ║ AJS ║
║ 00031474 ║ 1997-02-04 00:00:00.000 ║ BJR ║ NULL ║
║ 00031513 ║ 1997-02-19 00:00:00.000 ║ NS ║ NULL ║
║ 00031538 ║ 1997-02-25 00:00:00.000 ║ SPB ║ SPB ║
╚══════════╩═════════════════════════╩═════╩══════╝
どうしてですか?私は理由について考えることができません。
ご協力いただければ幸いです。
これは完璧です!私は角括弧が必要なのか分からなかった。 – Sp00kyy