我对查询有些麻烦。查询是为了获取Article Nr。和修改日期。之后我们生成一份报告。它一直运作到现在。
每个产品都有4个阶段,有4个日期。 不幸的是在DB中有时超过4个阶段。在某些情况下,产品会将流程传递两次。这意味着8个阶段,8个日期。 我试图得到什么:
这是我的代码,(我创建伪代码)
我尝试将Artikel编号与日期(concat()
)混合。
获得一个独特的字符串
但它工作得不好(处理时间很长)。
SELECT
*
FROM
(
SELECT
/* Some Calculations & Cases and Critera */
FROM
(
SELECT
/* Get the Product Columns */
ArtNumber,
modDate,
weight
FROM
/* four different Tables */
WHERE
/* Criterialist to get the Products */
modDate>sysdate -360
/* what i think, that can solve the Problem */
AND CONCAT(ArtNumber, modDate) IN
(
SELECT DISTINCT
ArtNumber
FROM
WHERE
(
stateentrytime >sysdate - 13
AND stateentrytime<sysdate - 5
)
(
SELECT
MAX(modTime) AS highestDate,
ArtNumber,
CONCAT (ArtNumber, modTime) AS ArtMod
FROM
WHERE
/* Criterialist to get the Products */
AND ArtNumber IN
(
SELECT
ArtNumber
FROM
WHERE
modTime>sysdate -360
GROUP BY
h.ArtNumber
)
GROUP BY
h.ArtNumber,
CONCAT (ArtNumber, modTime)
)
)
)
ftd ,
WHERE
/* Criterialist to get the Products */
)
WHERE
/* more Criteria */
你有什么提示吗? 为了
我的期望:
ArtNumber | modTime
--------- | -------
12345 | 23.08.2016
12346 | 20.07.2016
12347 | 23.05.2016
12348 | 23.03.2016
我得到了什么:
ArtNumber | modTime
--------- | -------
12345 | 23.08.2016
12346 | 20.07.2016
12345 | 23.05.2016
12346 | 23.03.2016
问题是,当我试图获得MAX时。我只得到具有最高日期的物品。
非常感谢Phil答案 0 :(得分:0)
您想要汇总数据。您正在寻找df = data.frame(Year=c(2012,2013,2014), N=c(61175,52477,48699))
plot(df[,c('Year', 'N')], type='o')
legend(x=1, y=max(df$N), legend=c('a'), pch=1, lty=1)
每 MAX(modtime)
。这转换为artnumber
。 (如果没有MAX(modtime) ... GROUP BY artnumber
,您只会获得一行聚合所有 recods。)
因此:
GROUP BY