你能提供给我所需结果的查询吗?

问题描述 投票:0回答:0

在这前两条记录中,除了状态列之外,我们的所有列都相同,所以对于这个表。我要查询。
它过滤掉其中的记录,无论 BPA_NUBER 和 line_number 对于相同的 ITEM_CODE 是相同的,我想排除它们。 不处于“活动”状态的记录。

所以在这个例子中,它会自动选择状态为活动的第一条记录,因为 ITEM_CODE 具有相同的 BPA_NUBER 和行号,但第二条记录的状态不是“活动”,因此被排除在外。您现在可以根据这种情况给我一个查询吗?

CREATE TABLE my_table (
  BPA_NUMBER VARCHAR(10),
  BU VARCHAR(2),
  LINE_NUM INT,
  ITEM_CODE VARCHAR(10),
  ORG_CODE VARCHAR(10),
  STATUS VARCHAR(10)
);

INSERT INTO my_table (BPA_NUMBER, BU, LINE_NUM, ITEM_CODE, ORG_CODE, STATUS)
VALUES ('ES_01', 'ES', 2357, '10032', 'CH_112', 'Active'),
       ('ES_01', 'ES', 2357, '10032', 'CH_112', 'Inactive'),
       ('ES_01', 'ES', 2357, '10032', 'ES_112', 'Active'),
       ('ES_01', 'ES', 2357, '10032', 'ES_112_SVM', 'Active'),
       ('ES_01', 'ES', 2357, '10032', 'ITEM', 'Active'),
       ('ES_01', 'ES', 2357, '10032', 'PT_112', 'Active'),
       ('ES_01', 'ES', 2357, '10032', 'PT_112_SVM', 'Inactive'),
       ('PT_01', 'PT', 9534, '10032', 'CH_112', 'Active'),
       ('PT_01', 'PT', 9534, '10032', 'ES_112', 'Active'),
       ('PT_01', 'PT', 9534, '10032', 'ES_112_SVM', 'Active'),
       ('PT_01', 'PT', 9534, '10032', 'ITEM', 'Active'),
       ('PT_01', 'PT', 9534, '10032', 'PT_112', 'Active'),
       ('PT_01', 'PT', 9534, '10032', 'PT_112_SVM', 'Inactive'),
       ('PT_01', 'PT', 9534, '10032', 'PT_112', 'Inactive');


select * from my_table;

--DROP TABLE my_table;

这是参考表,以防您需要示例记录“红色”中的字段我想排除这些字段。
你能给我提供所需结果的查询吗?
请参阅此数据库小提琴以供参考
https://dbfiddle.uk/BtXcQ0Eg

sql sql-server filter inner-join rdbms
© www.soinside.com 2019 - 2024. All rights reserved.