回答

收藏

SQL-至少排除一次满足要求的列的值

技术问答 技术问答 290 人阅读 | 0 人回复 | 2023-09-11

有两个表Client和Stock:
+ X6 k  Z7 @8 R/ h% m2 |; q% eTable Client3 P9 G! w& ?4 V8 D* e3 J( U
    Column IDC       (primary key, int, not null)0 E6 n5 H, ]7 C6 i
Table Stock% @7 A! P7 P1 i- j. @8 \9 q
    Column IDS       (primary key, int, not null)$ }* K5 b/ c4 z/ V$ ^+ I4 Q3 G6 ~
    Column IDC       (int, not null)6 d( i+ J1 o* q" N' d0 o
    Column Type      (bit, not null): d' W1 o) X9 q  b2 I3 s
    Column Price     (decimal(10,2), null), l/ m+ [3 ^. U2 \  e
它们应被视为由连接Client.IDC = Stock.IDC。
3 M& L( Y5 Q* \9 ]# A% p0 F6 tIDC通过Type = 1和获得客户Price not' `8 B( l7 D! }$ g
NULL是微不足道的。但是,获得剩余的清单对我来说并不简单IDC。以下尝试未提供正确的清单IDC:% Q5 ^$ _7 Y! e4 a* h' v
SELECT [Client].[IDC]
: t; h' z1 x$ N' zFROM [Client] LFEFT JOIN [Stock] on [Client].[IDC] = [Stock].[IDC]
9 J  c" P) [  ]! v, ~WHERE NOT([Stock].[Type] = 1 AND [Stock].[Price] IS NOT NULL)
; y4 \. [" F/ F8 z0 v5 @; G' Q该语句返回一些IDC应该排除的值,因为对于它们来说,确实存在Type = 0与Type = 1和的行,但还有与和的其他行Price not
# v/ f4 f; G6 ~2 `5 }* b. XNULL。我应该如何着手获得IDC不具有一行Type = 1,并Price not NULL在所有?
3 t) g, i* H7 n! U8 H  p: k# V               
) r6 N* F( ]7 N' Q9 C解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则