次の表があります。この表には、クライアントとその製品に関する情報が含まれています。私は、私が探している特定の製品をクライアントに返すクエリを書くつもりです。私はこのクエリで複数のWHERE句を使用すると、正しい結果セットが返されない
INSERT INTO dbo.MainTable VALUES ('Client_1', 1, 'Suite 09', 'VA')
INSERT INTO dbo.MainTable VALUES ('Client_2', 2, 'Suite 07', 'VA')
表を使用しました
表にINSERT文の
CREATE TABLE [dbo].[MainTable](
[Client_Name] [nChar](10) NULL,
[Client_ID] [int] NULL,
[Product_Name] [nChar](10) NULL,
[Client_State] [nChar](10) NULL
) ON [PRIMARY]
例を作成し
Client_Name Client_ID Prod_Name Client_State
------------------------------------------------------
Client_1 1 Suite 09 VA
Client_2 2 Suite 07 VA
Client_2 2 Suite 08 VA
Client_3 3 Suite 10 VA
Client_4 4 Suite 10 VA
Client_4 4 Suite 11 VA
Client_5 5 Suite 11 VA
それでは、私は「製品とスイート10をすべてのクライアントをしたいとしましょう'AND' Suite 11 ' Client_4はこの基準に一致します。
私が返します空の結果セットを試してみましたクエリ:
SELECT [CLIENT_NAME]
FROM [PRODUCTDB].[dbo].[MainTable]
WHERE Product_Name = 'Suite 09' AND Product_Name = 'Suite 10'
私は、OR句をしようとすると、私は私が望んでいない結果が得られます。たとえば、上記のクエリでAND句のためのORを代入すると、私を与える:私が行う必要がありますようにそれはそう何
Client_1 * This client does not have Suite 10, only Suite 09
Client_3 * This client does not have Suite 09, only Suite 10
Client_4 * This client is correct, it has both Suite 09 and Suite 10.
は、一つの製品のためのクエリを記述し、その後、他のために別のクエリを記述で最初のクエリの結果を使用してうまくいけば、よりエレガントなソリューションがあります!
http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple- sql-query – Strawberry
@Strawberryあなたの提案に基づいていくつか変更を加えました。私が達成しようとしていることを理解しやすくして欲しいです。ありがとう –
これらの変更には、CREATEステートメントとINSERTステートメントの提供、および望ましい結果が含まれていましたか? – Strawberry