SQL MS访问只需显示2个具有相同ID的数据



我的问题只是显示两个具有相同ID的数据。

我的桌子看起来像这样:

------------------------------
- FlatDestID - Trefferspalte -
- 444555666  -       K       -
- 444555666  -       1       -
- 444555666  -       1       -
- 111222333  -       K       -
- 111222333  -       1       -
- 111222333  -       1       -
------------------------------

我想拥有这样的桌子

------------------------------
- FlatDestID - Trefferspalte -
- 444555666  -       K       -
- 444555666  -       1       -
- 111222333  -       K       -
- 111222333  -       1       -
------------------------------

有时我有四到五次相同的ID。我只想显示每个flatdestid的前两个数据,例如第二个示例中。这意味着,如果您具有相同的flatDestid的5倍,则只需显示" trefferspalte = k"的flatDestid,然后显示具有相同flatDestid和" trefferspalte = 1"的secon数据

希望您能理解我的问题以及我需要解决方案的问题。

来自德国的伟大

------------编辑------------------

我有" trefferspalte"值k和1-6,然后我想看到始终k,然后是另一个带有1或2或2或3或4或5或6的FlatDestid!

解决方案不同显示了具有flatdestid而不是K的所有值,而仅仅是任何trefferspalte,则显示了所有的flatdestid和trefferspalte。我需要有两个值。

访问不喜欢嵌套的SQL查询,因此首先使用此SQL创建查询:

SELECT K.FlatDestID, T.AnyTrefferspalte
FROM
(
    SELECT DISTINCT FlatDestID 
    FROM <yourTable>
    WHERE Trefferspalte = 'K'
) K 
INNER JOIN
(
    SELECT FlatDestID, MIN(Trefferspalte) AS AnyTrefferspalte
    FROM <yourTable>
    WHERE Trefferspalte <> 'K'
    GROUP BY FlatDestID
) T
ON K.FlatDestID = T.FlatDestID

目标是知道哪个是> a'k'k' trefferspalte row 任何其他行。如果有多个non-k trefferspalte ,则使用MIN(Trefferspalte),我选择保留其最小值。您可以将其更改为MAX()以保持更高的值,也可以将其更改为FIRST(),以保持第一个遇到的值,实际上,这意味着随机

像您想要的那样命名您的查询,我选择了 tempquery

那么,此查询应给您预期的结果:

SELECT FlatDestID, 'K' AS Trefferspalte FROM TempQuery
UNION ALL
SELECT FlatDestID, AnyTrefferspalte AS Trefferspalte FROM TempQuery
ORDER BY FlatDestID

在旁注:您的桌子结构很奇怪,需要进行严重的重新设计,以避免您很多头痛。主键将是一个很好的开始。

使用不同的删除重复项,这将显示您的2行。当您对Trefferspalte具有2个以上不同的值时,您将必须使用其他方法。

SELECT DISTINCT FlastDestID, Trefferspalte
FROM <yourTable>

您可能需要将两个列制作您的主键,以便如果收到重复值(因此您不会将其保存在表中(,则会丢弃错误。如果那是现有的设置,并且您无法做任何事情,请尝试不同。如果它不起作用,请尝试对其进行分组(您只需要在查询中添加一个新列:

SELECT FlatDestID, Trefferspalte, COUNT(*) FROM YourTable GROUP BY FlatDestID, Trefferspalte

最新更新