如何将我的两个查询合并为 1?

用户1452574

所以我有:

SELECT
  od.PartNo,
  CAST(od.PartDesc AS NVARCHAR(MAX)) AS [PartDesc],
  MAX(CAST(t.TicketDate AS DATETIME)) AS [EndDate]
FROM TimeTicketDet t JOIN OrderDet od ON t.JobNo = od.JobNo
  JOIN OrderRouting r ON t.JobNo = r.JobNo
WHERE t.WorkCntr = 500
  AND r.Status = 'Finished'
GROUP BY od.PartNo, CAST(od.PartDesc AS NVARCHAR(MAX))
ORDER BY MIN(CAST(t.TicketDate AS DATETIME)) DESC

SELECT
  od.PartNo,
  CAST(od.PartDesc AS NVARCHAR(MAX)) AS [PartDesc],
  MIN(CAST(t.TicketDate AS DATETIME)) AS [StartDate]
FROM TimeTicketDet t JOIN OrderDet od ON t.JobNo = od.JobNo
  JOIN OrderRouting r ON t.JobNo = r.JobNo
WHERE t.WorkCntr = 100
GROUP BY od.PartNo, CAST(od.PartDesc AS NVARCHAR(MAX))
ORDER BY MIN(CAST(t.TicketDate AS DATETIME)) DESC

我需要 MIN 和 MAX 列在 1 个查询中,但是因为我在 WHERE 子句中指的是 2 个不同的工作中心,所以我不确定如何去做。我试过这个:

SELECT
  od.PartNo,
  CAST(od.PartDesc AS NVARCHAR(MAX)) AS [PartDesc],
    (SELECT
       MIN(CAST(t.TicketDate AS DATETIME)) AS [StartDate]
     FROM TimeTicketDet t JOIN OrderDet od ON t.JobNo = od.JobNo
       JOIN OrderRouting r ON t.JobNo = r.JobNo
     WHERE t.WorkCntr = 100
     GROUP BY od.PartNo
     ),
  MAX(CAST(t.TicketDate AS DATETIME)) AS [EndDate]
FROM TimeTicketDet t JOIN OrderDet od ON t.JobNo = od.JobNo
  JOIN OrderRouting r ON t.JobNo = r.JobNo
WHERE t.WorkCntr = 500
  AND r.Status = 'Finished'
GROUP BY od.PartNo, CAST(od.PartDesc AS NVARCHAR(MAX))
ORDER BY MIN(CAST(t.TicketDate AS DATETIME)) DESC

这几乎奏效了,除了 MIN 列只是系统中的第一个日期,它与 PartNo/Workcenter 无关,所以我被卡住了。我不确定我是否接近或者我是否应该使用 CTE 之类的其他东西

提前致谢

肖恩00

如果您希望开始和结束作为单独的列,那么case表达式将允许您在更改where条件以允许两组行通过后挑选适当的值如果所需的开始日期总是早于最终结束日期,正如我想象的那样,您可能甚至不需要那么花哨。你确实提到在第二个结果中有更多的行,所以我不确定它来自哪里,它可能会稍微改变逻辑。

在这种情况下,主要是使用OR.

SELECT
  od.PartNo,
  MIN(CAST(od.PartDesc AS NVARCHAR(MAX))) AS PartDesc,
  MIN(CASE WHEN t.WorkCntr  = 100 THEN CAST(t.TicketDate AS DATETIME) END)) AS StartDate,
  MAX(CASE WHEN t.WorkCntr <> 100 THEN CAST(t.TicketDate AS DATETIME) END)) AS EndDate
FROM
    TimeTicketDet t
    INNER JOIN OrderDet od ON t.JobNo = od.JobNo
    INNER JOIN OrderRouting r ON t.JobNo = r.JobNo
WHERE t.WorkCntr = 100 OR t.WorkCntr = 500 AND r.Status = 'Finished'
GROUP BY od.PartNo
ORDER BY PartDesc DESC;

注意:我选择了结束日期条件是因为它们彼此相反,对我来说它更明显地表明了正在发生的事情。

顺便说一句,如果您将它关联起来,您可以让您的子查询工作:

...
(
    SELECT MIN(CAST(t.TicketDate AS DATETIME))
    FROM OrderDet od2 INNER JOIN TimeTicketDet t
        ON t.JobNo = od2.JobNo
    WHERE t.WorkCntr = 100 AND od2.PartDesc = od.PartDesc
) AS StartDate
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将两个查询合并为1的SQL Server 2008

来自分类Dev

如何将这两个查询合并为1以满足条件?

来自分类Dev

如何将两个不同大小写的sql合并为1?

来自分类Dev

如何将两个jrxml jasper报告合并为1个pdf同一页

来自分类Dev

如何将2个查询与mysql合并为1个查询

来自分类Dev

将两个查询合并为 1(无需创建 tmp 表)

来自分类Dev

如何将 2 个 Linq 查询合并为 1 个?

来自分类Dev

Visual C#如何将两个1D string []数组合并为一个2D string [,]数组

来自分类Dev

Mysql 将两个表合并为一个输出但结果子查询返回多于 1 行

来自分类Dev

将我的两个查询合并为一个查询

来自分类Dev

如何将其合并为 1 个块?

来自分类Dev

我怎样写雄辩查询其加入,合并或联合这两个查询到1?

来自分类Dev

如何将这两个linq查询合并为一个查询?

来自分类Dev

如何将这两个单独的聚合查询合并为一个查询?

来自分类Dev

如何将这两个选择查询合并为一个查询?

来自分类Dev

如何将文件合并为1个文件,以及合并后如何拆分文件

来自分类Dev

如何从子查询中使mysql查询将2个结果合并为1个结果

来自分类Dev

Bash Shell脚本-难以将两个不同的Finds合并为1或只是比较结果

来自分类Dev

如何将这两个查询合并为比较查询

来自分类Dev

如何将两个查询合并为一行查询

来自分类Dev

如何将这两个查询合并为比较查询

来自分类Dev

如何将两个联接查询合并为一个?

来自分类Dev

如何将两个SQL查询的结果合并为一个

来自分类Dev

如何将两个SQL查询合并为一个?

来自分类Dev

如何将这两个查询合并为一个?

来自分类Dev

如何将这两个不同的LINQ查询合并为一个?

来自分类Dev

如何将以下两个查询合并为一个结果?

来自分类Dev

如何将这两个查询合并为一个?

来自分类Dev

如何将两个基于 if-else 的相似查询合并为一个

Related 相关文章

  1. 1

    如何将两个查询合并为1的SQL Server 2008

  2. 2

    如何将这两个查询合并为1以满足条件?

  3. 3

    如何将两个不同大小写的sql合并为1?

  4. 4

    如何将两个jrxml jasper报告合并为1个pdf同一页

  5. 5

    如何将2个查询与mysql合并为1个查询

  6. 6

    将两个查询合并为 1(无需创建 tmp 表)

  7. 7

    如何将 2 个 Linq 查询合并为 1 个?

  8. 8

    Visual C#如何将两个1D string []数组合并为一个2D string [,]数组

  9. 9

    Mysql 将两个表合并为一个输出但结果子查询返回多于 1 行

  10. 10

    将我的两个查询合并为一个查询

  11. 11

    如何将其合并为 1 个块?

  12. 12

    我怎样写雄辩查询其加入,合并或联合这两个查询到1?

  13. 13

    如何将这两个linq查询合并为一个查询?

  14. 14

    如何将这两个单独的聚合查询合并为一个查询?

  15. 15

    如何将这两个选择查询合并为一个查询?

  16. 16

    如何将文件合并为1个文件,以及合并后如何拆分文件

  17. 17

    如何从子查询中使mysql查询将2个结果合并为1个结果

  18. 18

    Bash Shell脚本-难以将两个不同的Finds合并为1或只是比较结果

  19. 19

    如何将这两个查询合并为比较查询

  20. 20

    如何将两个查询合并为一行查询

  21. 21

    如何将这两个查询合并为比较查询

  22. 22

    如何将两个联接查询合并为一个?

  23. 23

    如何将两个SQL查询的结果合并为一个

  24. 24

    如何将两个SQL查询合并为一个?

  25. 25

    如何将这两个查询合并为一个?

  26. 26

    如何将这两个不同的LINQ查询合并为一个?

  27. 27

    如何将以下两个查询合并为一个结果?

  28. 28

    如何将这两个查询合并为一个?

  29. 29

    如何将两个基于 if-else 的相似查询合并为一个

热门标签

归档