我遇到了以下问题:
我有一个名为“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
我知道我的查询不起作用,但我不知道我的错误在哪里以及我的方法是否正确。任何帮助表示赞赏!
答案 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。