如果这些行之一在字段中具有非空值,我如何删除所有匹配一个 ID 的行(从我的查询中)?

How do I remove all of the rows (from my query) matching one ID if one of those rows has a non null value in a field?

所以基本上,我有几个表,我需要在一个查询中获取某些记录。下面的代码正在运行。但是我想添加一个新的功能。

在 ESP_Facturacao 中,相同的 Item_TAG 可能有重复的行。 如果一个为空,另一个不为空,我将在查询中得到空记录。

(((ESP_Facturacao.[1a_MesAno]) 为空)

我不希望有任何具有相同 Item_TAG 的重复记录,并删除任何具有 Item_TAG 且已经具有非空 1a_MesAno 记录的行。

这可能吗?我该怎么做?

SELECT
ESP_Fisico.ESP_SubTipo_ID,
ESP_Fisico.ESP_Unidade_ID,
ESP_Facturacao.[1a_MesAno] AS Data,
ESP_Facturacao.[1a_Faturado] AS Valor,
'1 a' AS Tarefa,
'1' AS Control,
'1' AS Estado,
ESP_Facturacao.Item_TAG,
ESP_SubTipo.Descrição AS SubTipo,
ESP_Unidade.Descricao AS Unidade,
ESP_Facturacao.ID
FROM (ESP_Unidade INNER JOIN ((ESP_TAG LEFT JOIN ESP_Facturacao ON ESP_TAG.ID = ESP_Facturacao.ESP_Tag_ID) INNER JOIN (ESP_SubTipo INNER JOIN ESP_Fisico ON ESP_SubTipo.ID = ESP_Fisico.ESP_SubTipo_ID) ON ESP_TAG.ID = ESP_Fisico.ESP_Tag_ID) ON ESP_Unidade.ID = ESP_Fisico.ESP_Unidade_ID) INNER JOIN ESP_Administrativas ON ESP_TAG.ID = ESP_Administrativas.ESP_Tag_ID
WHERE (((ESP_Facturacao.[1a_MesAno]) Is Null) AND ((ESP_Administrativas.Data_Aut_Funcion) Is Null) AND ((ESP_Administrativas.Novo_Pos_2010)=True));

这是我想出的:

SELECT
ESP_Fisico.ESP_SubTipo_ID,
ESP_Fisico.ESP_Unidade_ID,
ESP_Facturacao.Item_TAG,
ESP_Facturacao.[1a_MesAno] AS Data,
ESP_Facturacao.[1a_Faturado] AS Valor,
'1 a' AS Tarefa,
'1' AS Control,
'1' AS Estado,
ESP_SubTipo.Descrição AS SubTipo,
ESP_Unidade.Descricao AS Unidade,
ESP_Facturacao.ID

FROM ESP_Unidade INNER JOIN (((ESP_TAG LEFT JOIN ESP_Facturacao ON ESP_TAG.ID = ESP_Facturacao.ESP_Tag_ID) INNER JOIN (ESP_SubTipo INNER JOIN ESP_Fisico ON ESP_SubTipo.ID = ESP_Fisico.ESP_SubTipo_ID) ON ESP_TAG.ID = ESP_Fisico.ESP_Tag_ID) INNER JOIN ESP_Administrativas ON ESP_TAG.ID = ESP_Administrativas.ESP_Tag_ID) ON ESP_Unidade.ID = ESP_Fisico.ESP_Unidade_ID
WHERE (((ESP_Facturacao.Item_TAG) Not In (SELECT ESP_Facturacao.Item_TAG
FROM ESP_Facturacao
WHERE (((ESP_Facturacao.[1a_MesAno]) Is Not Null)))) AND ((ESP_Administrativas.Data_Aut_Funcion) Is Null) AND ((ESP_Administrativas.Novo_Pos_2010)=True));