Sql 具有最低id的选择

Sql 具有最低id的选择,sql,Sql,这是我的想法 我正在从数据库中进行选择,其中一列是oe.prodplan\u id。这个表包含一个引用另一个表的数字。在oe.prodplan\u id中,许多选定的行包含相同的数字,因此我只需要包含最低值的所有行。例如,选中oe.prodplan\u id=1的所有行。 问题是,我现在不知道最低值,所以从所选行中,我只想要数字最低的那些。。 也许我的解释不好,但我的英语也是:) 这是我的sql问题,如果有帮助的话: SELECT oe.id AS oeID, oh.ordernumb

这是我的想法

我正在从数据库中进行选择,其中一列是
oe.prodplan\u id
。这个表包含一个引用另一个表的数字。在
oe.prodplan\u id
中,许多选定的行包含相同的数字,因此我只需要包含最低值的所有行。例如,选中
oe.prodplan\u id=1的所有行。
问题是,我现在不知道最低值,所以从所选行中,我只想要数字最低的那些。。
也许我的解释不好,但我的英语也是:)

这是我的sql问题,如果有帮助的话:

SELECT 
    oe.id AS oeID, oh.ordernumber, oe.order_line, oe.prod_week, 
    oe.prodplan_id, oe.door_type, oe.amount AS amountOfDoors, oe.inner_color, 
    oe.outer_color, oe.prod_week, a.name, a.description, i.amount AS iAmount, 
    md.status AS mdStatus, i.width, i.length, c.color_name AS innerColor, 
    c2.color_name AS outerColor, pp.status, oe.pos, d.name, md.id AS mdid 
FROM pd_mounting_details AS md 
LEFT OUTER JOIN pd_order_eco AS oe ON md.order_data = oe.id 
LEFT OUTER JOIN pd_article AS a ON md.article = a.id 
LEFT OUTER JOIN pd_inventory AS i ON md.id = i.pp_id 
LEFT OUTER JOIN pd_order_head AS oh ON oe.order_head = oh.id 
LEFT OUTER JOIN pd_colors AS c ON oe.inner_color = c.id 
LEFT OUTER JOIN pd_colors AS c2 ON oe.outer_color = c2.id 
LEFT OUTER JOIN pd_doors as d ON oe.door=d.id 
LEFT OUTER JOIN pd_production_plan AS pp ON oe.prodplan_id = pp.id 
WHERE 
     (a.production_group = 4) 
     AND (NOT (oe.amount = 0)) 
     AND (pp.status = 4) 
     AND md.status = 4
     AND (startTime = '' OR startTime IS NULL) 
     AND (stopTime = '' OR stopTime IS NULL)
ORDER BY oe.pos
向您致意

您使用了一个MIN()函数。因为这是一个“聚合”函数,所以必须在GROUPBY子句中包含其他字段。
SELECT 
    oe.id AS oeID, oh.ordernumber, oe.order_line, oe.prod_week, 
    oe.prodplan_id, oe.door_type, oe.amount AS amountOfDoors, oe.inner_color, 
    oe.outer_color, oe.prod_week, a.name, a.description, i.amount AS iAmount, 
    md.status AS mdStatus, i.width, i.length, c.color_name AS innerColor, 
    c2.color_name AS outerColor, pp.status, oe.pos, d.name, md.id AS mdid 
FROM pd_mounting_details AS md 
LEFT OUTER JOIN pd_order_eco AS oe ON md.order_data = oe.id 
LEFT OUTER JOIN pd_article AS a ON md.article = a.id 
LEFT OUTER JOIN pd_inventory AS i ON md.id = i.pp_id 
LEFT OUTER JOIN pd_order_head AS oh ON oe.order_head = oh.id 
LEFT OUTER JOIN pd_colors AS c ON oe.inner_color = c.id 
LEFT OUTER JOIN pd_colors AS c2 ON oe.outer_color = c2.id 
LEFT OUTER JOIN pd_doors as d ON oe.door=d.id 
LEFT OUTER JOIN pd_production_plan AS pp ON oe.prodplan_id = pp.id 
WHERE 
     (a.production_group = 4) 
     AND (NOT (oe.amount = 0)) 
     AND (pp.status = 4) 
     AND md.status = 4
     AND (startTime = '' OR startTime IS NULL) 
     AND (stopTime = '' OR stopTime IS NULL)

     --ADDED
     AND oe.prodplan_id = (SELECT MIN(prodplan_id) FROM pd_order_eco)

ORDER BY oe.pos
例如:

SELECT
   MIN(prodplan.id),
   oh.ordernumber
FROM
   ...
WHERE
   ...
GROUP BY
   oh.ordernumber
原始结果集(基于所有表联接、筛选器等):

聚合结果集(在prodplan.id上使用MIN)

它过滤掉了这条记录(因为除了prodplan.id之外的所有内容都是相同的,并且它保存的记录的prodplan.id是这两条记录中的最小数目)

使用一个MIN()函数。因为这是一个“聚合”函数,所以必须在GROUPBY子句中包含其他字段。 例如:

SELECT
   MIN(prodplan.id),
   oh.ordernumber
FROM
   ...
WHERE
   ...
GROUP BY
   oh.ordernumber
原始结果集(基于所有表联接、筛选器等):

聚合结果集(在prodplan.id上使用MIN)

它过滤掉了这条记录(因为除了prodplan.id之外的所有内容都是相同的,并且它保存的记录的prodplan.id是这两条记录中的最小数目)



除此之外,我想知道哪个身份证?请把表的列名贴出来。@JNK:我很懒,我是个程序员——这些事情一次又一次地发生。。。。猜猜看!:-)@邪恶-你的问题质量极低,所以它被关闭了。您可以编辑它来改进它,然后重新打开它。@JNK好的,谢谢。我真的不知道这个论坛是如何运作的。。我试图解决这个问题…除此之外,我想知道哪个id?请把表的列名贴出来。@JNK:我很懒,我是个程序员——这些事情一次又一次地发生。。。。猜猜看!:-)@邪恶-你的问题质量极低,所以它被关闭了。您可以编辑它来改进它,然后重新打开它。@JNK好的,谢谢。我真的不知道这个论坛是如何运作的。。我试图解决这个问题……实际上,我希望所有行都包含最低id,在上面的示例中:oe.prodplan_id?@Evilaid:我正在更新我的答案。另外,您的问题已经结束,请查看评论并编辑以提供所需信息,以便更多人可以回答。@Evilaid:我已更新了我的答案。试试看,让我知道这是否有效。干杯,很好用!非常感谢。这正是我想要的。。还有,谢谢你告诉我我在这个问题上做错了什么,为什么它被关闭了。。。我真的不明白JNK的第一条评论是什么意思,说“你有没有这个,还有你发布的关于接受保存为宏的答案的评论”总之:谢谢@很好,不客气。第一条评论是针对其他人@Marc_s的,所以可能有点让人困惑。如果我的回答对你有用的话,别忘了接受我的回答,而且(我不知道如何重新提出这个问题,否则我会的)。无论如何,欢迎来到这个网站:)事实上我想要所有包含最低id的行,在上面的例子中:oe.prodplan\u id?@Evilaid:我正在更新我的答案。另外,您的问题已经结束,请查看评论并编辑以提供所需信息,以便更多人可以回答。@Evilaid:我已更新了我的答案。试试看,让我知道这是否有效。干杯,很好用!非常感谢。这正是我想要的。。还有,谢谢你告诉我我在这个问题上做错了什么,为什么它被关闭了。。。我真的不明白JNK的第一条评论是什么意思,说“你有没有这个,还有你发布的关于接受保存为宏的答案的评论”总之:谢谢@很好,不客气。第一条评论是针对其他人@Marc_s的,所以可能有点让人困惑。如果我的回答对你有用的话,别忘了接受我的回答,而且(我不知道如何重新提出这个问题,否则我会的)。无论如何,欢迎来到这个网站:)那么我得到所有包含最低id“oe.prodplan\u id”的字段了吗?我会举个例子——只是一个部分谢谢你。我用了伏都教的例子,但我也用了你的..我得到所有包含最低id“oe.prodplan\u id”的字段了吗我举个例子,只是一个教派谢谢你我用了伏都教的例子但我也用了你的。。
1           | 1              | cow
3           | 1              | tree
2           | 1              | cow