【问题标题】:sql statement: count by date rangesql语句:按日期范围计数
【发布时间】:2018-01-02 00:47:23
【问题描述】:

假设我有一张下表

license_num (varchar)--------checkout_datetime(日期时间)

ABC-123-------------------------------------------- 2017-12-29 00:07:00

ABC-123-------------------------------------------- 2017 -12-30 00:10:00

XYZ-456------------------------------------------- 2017 -12-30 00:10:00

XYZ-456------------------------------------------- 2017 -12-31 00:11:00

我需要一条产生以下结果的 SQL 语句:

LicenseNumber--------12/29---12/30---12/31---TotalOfWeek

ABC-123-----------------------------------1-------- ------1-------------0------------------2

XYZ-456-----------------------0-------- ------1------------1-----------------2

这样的SQL语句怎么写?

感谢您的帮助!

【问题讨论】:

  • 请也包括您的尝试。
  • 如果范围应该大于 3 天会怎样?您是否希望跨列有这么多日期?
  • 请学习如何格式化您的帖子

标签: sql date count range


【解决方案1】:

试试这个.. :) 我猜对了...

   SELECT *,CONVERT(Varchar(10),
  (DATEPART(MM,checkout_datetime)))+'/'+CONVERT(Varchar(10),
  (DATEPART(DD,checkout_datetime)))  AS NewColName,1 AS Count
  INTO #TempPivotTab2
  FROM TransTable

  SELECT *
  FROM
   (
   SELECT license_num,NewColName,Count
   FROM   #TempPivotTab2 
   ) AS SourceTable
   PIVOT
   (
   SUM(Count)
   FOR NewColName IN ([12/29],[12/30],[12/31])
   )Piv

【讨论】:

    猜你喜欢
    • 2020-09-30
    • 1970-01-01
    • 2021-10-30
    • 2019-07-15
    • 1970-01-01
    • 2023-03-17
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多