sql - SELECT 查询毫秒访问
问题描述
我有一个 ms 访问表,如下所示:
弗兰克 | 笔记本电脑
抢劫 | 笔记本电脑
Lindesy | ThinCient
标记 | 桌面
保罗 | 桌面
保罗 | 瘦客户端
如何创建仅返回既没有 ThinClient 也没有笔记本电脑的用户的 SELECT 查询?
我试过:
SELECT DISTINCT UserName, PC_Type
From Table
GROUP BY UserName, PC_Type
HAVING PC_Type <> "ThinClient" AND PC_Type <> "Laptop"
[or where PC_Type Not In ("ThinClient", "Laptop")]
但这不会过滤排除已经拥有笔记本电脑(或 ThinClient)的用户,因为它会返回例如已经拥有笔记本电脑的“ROB | Desktop”(或已经拥有 ThinClient 的“Paul | Desktop”)。我尝试查询以查找重复项、差异查询、交叉查询,但我开始感到困惑。我试图创建子查询或分区查询,但我不知道我是否做对了。
任何人都可以帮我解决这个问题,好吗?我希望从查询中只返回 Mark。
解决方案
您可以使用聚合和HAVING
:
SELECT UserName
From Table
GROUP BY UserName
HAVING SUM(IIF(PC_Type IN ("ThinClient", "Laptop"), 1, 0) = 0 ;
推荐阅读
- oracle - 同一表空间上的两个模式的相同表名
- here-api - 这里的地图事件相当于谷歌地图的“空闲”事件
- javascript - html按钮未调用其onclick js函数
- c++ - 在 C++ 应用程序中嵌入用户名以使登录更容易?
- rest - SoapUI 将属性传输到 Endpoint
- identityserver4 - 如何仅对identityserver4执行仅Https请求
- http - 烧瓶服务器有时会截断长 json 响应
- spring - 跟踪 Spring Integration 的消息通道的输入和输出
- javascript - 在 Jquery 中单击和未单击项目时不同的悬停颜色
- bash - 根据终端中的括号或括号(仅限顶级)拆分文本文件