Access / SQL:同一列上的多个条件

时间:2013-10-23 08:56:00

标签: sql ms-access ms-office

我遇到了以下问题:

我有一个名为“Pickauf_0110”的表,包含约80列和约60000条记录。

我感兴趣的两个栏目是:“nr_pickl”和“platz_von”。

“nr_pickl”列中的条目如下所示:

123456
123456
123457

“platz_von”栏中的条目如下所示:

03-01-00-00 
03-02-00-00
04-01-00-00
05-06-03-02

这些列都不是键,因此记录不是唯一的。

这是我想要找到的:

“platz_von”中有多少条目以“03”开头,“04”中有多少条目,“nr_pickl”中每个唯一条目中有多少条目为“05”。

我的想法是做一个三重自我加入,有三个不同的条件(platz_von像'03 *'......),加上这些并最后用nr_pickl分组。

这是我的SQL查询失败并显示错误:

    SELECT 
         p1.nr_pickl,
         sum(p1.platz_von) as Gang_03,
         sum(p2.platz_von) as Gang_04,
         sum(p3.platz_von) as Gang_05
    FROM
        ((Pickauf_0110 as p1
    INNER JOIN
        Pickauf_0110 as p2 ON p1.nr_pickl = p2.nr_pickl)
    INNER JOIN
        Pickauf_0110 as p3 ON p1.nr_pickl = p3.nr_pickl)
    WHERE
        p1.platz_von like '03*' AND
        p2.platz_von like '04*' AND
        p3.platz_von like '05*'
    GROUP BY
       p1.nr_pickl

我知道我的查询不起作用,但我不知道我的错误在哪里以及我的方法是否正确。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

SELECT 
   p1.nr_pickl,
   sum(IIF(LEFT(p1.platz_von, 2) = "03", 1, 0) as Gang_03,
   sum(IIF(LEFT(p1.platz_von, 2) = "04", 1, 0) as Gang_04,
   sum(IIF(LEFT(p1.platz_von, 2) = "05", 1, 0) as Gang_05
FROM
   Pickauf_0110 as p1
GROUP BY p1.nr_pickl
编辑:我没有尝试过这种语法。但这应该适用于MS-Access。