gpt4 book ai didi

sql - 从具有复合主键的表中选择过滤记录

转载 作者:行者123 更新时间:2023-12-04 02:54:16 24 4
gpt4 key购买 nike

我在 SQL Server 2008 R2 数据库上有下表:

╔══════════════════════════╦══════════════╦══════════╗║        Team Name         ║ Project Code ║ Actioned ║╠══════════════════════════╬══════════════╬══════════╣║ DC & Facilities Services ║ ZZ794419     ║ No       ║║ DC & Facilities Services ║ ZZ794419     ║ Yes      ║║ DC & Facilities Services ║ ZZ795164     ║ No       ║║ DC & Facilities Services ║ ZZ795247     ║ No       ║╚══════════════════════════╩══════════════╩══════════╝

Team NameProject Code在一起就是复合主键。在本例中,我想要的返回结果是最后 3 行。当(项目和团队)有多行(即上表中的前 2 行)时,我只想选择 Actioned 所在的行是 'Yes' 。如果项目和团队只有'No'已执行(即上表中的最后两行)中,它们也需要包含在我的结果中。

有没有办法从 SELECT 获取结果陈述?似乎很难定义WHERE子句以获得预期结果。

最佳答案

您可以尝试对团队名称项目代码列的组合进行分组,然后使用MAX()函数来选择如果给定组组契约(Contract)时出现 'Yes''No',则记录带有 'Yes'

SELECT `Team Name`, `Project Code`, MAX(`Actioned`) AS 'Actioned'
FROM table
GROUP BY `Team Name`, `Project Code`

关于sql - 从具有复合主键的表中选择过滤记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33514088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com