首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用UNION运算符合并星期几?

问如何使用UNION运算符合并星期几?
EN

Stack Overflow用户
提问于 2019-12-26 04:15:45
回答 1查看 107关注 0票数 0

我将这个与方法一起使用,这样我就可以组合两个SELECT语句。

问题是,当我使用UNION连接结果时,它复制了日期并组合了时间列。我需要的是另一种方式...例如:我正在尝试选择等于14:00的所有星期一的结果,然后选择等于16:00的另一组结果,并将这两个结果显示在彼此相邻的单独列中。

下面是这个SQL查询的示例。

代码语言:javascript
复制
USE Trading;
GO

WITH 
  ctetwo (CTEday, CTEtime) AS
  (
    SELECT DATENAME(WEEKDAY, M.[DateTime]) as Day,
        COUNT(M.[High] - M.[Low]) as Two  
    FROM dbo.MicroES M
        WHERE CONVERT(time, M.[DateTime]) = '14:00'
        AND DATEPART(WEEKDAY,M.[Datetime]) BETWEEN 2 AND 6
        GROUP BY DATENAME(WEEKDAY, M.[DateTime])
  ),
    cteSix (CTEday, CTEtime) AS
  (
    SELECT DATENAME(WEEKDAY, M.[DateTime]) as Day,
        COUNT(M.[High] - M.[Low]) as Two  
    FROM dbo.MicroES M
        WHERE CONVERT(time, M.[DateTime]) = '18:00'
        AND DATEPART(WEEKDAY,M.[Datetime]) BETWEEN 2 AND 6
        GROUP BY DATENAME(WEEKDAY, M.[DateTime])
  )

    select 
  --'Monday' AS 'Day',
    CTEday AS 'Day',
    CTEtime as TimeFour
   from ctetwo

   UNION ALL 

     select 
  --'Tuesday' AS 'Day',
    CTEday AS 'Day',
    CTEtime as TimeSix
   from cteSix

   ORDER BY Day

一天TimeFour

星期五15

星期五17

周一13

星期一19号

星期四15

星期四18

星期二16

星期二16

星期三18

星期三18

EN

回答 1

Stack Overflow用户

发布于 2019-12-26 08:21:38

你不能使用一次select来实现吗?

代码语言:javascript
复制
SELECT 
    DATENAME(WEEKDAY, M.[DateTime]) as [Day],
    COUNT(M.[High] - M.[Low]) as Two  
FROM dbo.MicroES M
WHERE CONVERT(time, M.[DateTime]) in ('14:00','18:00')
    AND DATEPART(WEEKDAY,M.[Datetime]) BETWEEN 2 AND 6
GROUP BY DATENAME(WEEKDAY, M.[DateTime])
ORDER BY [Day],Two
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59481554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档