SQL Server并使用日期,年份和上一年

NeoID

我对SQL Server还是很陌生,但是我仍然可以完成所需的大部分工作。但是,有一件事我只是无法理解,而且它可以处理日期。我有一个这样的数据库用于记录销售:

**Sales**  
    [index] int
    timestamp datetime
    username varchar(10)
    type int
    amount int
    value int
    location int
    receipt text

**Demo**
    index   timestamp   username    type    amount  value   location    receipt
    1   2013-08-14 11:29:29.367 andrer  1   1   10  2   *long text*

我必须查询我要执行的操作...第一个是最近7天的表格,向我显示每天的客户数量。我的主要问题是能够正确排序输出,同时仍以格式显示输出15.02.2014这就是我最终得到的。虽然可以正常工作..有没有更简单的编写方法?

SELECT CONVERT(varchar, DATEADD(dd, 0, DATEDIFF(dd, 0, [timestamp])), 104) as [timestamp], 
       COUNT([username]) as a 
FROM [sales] 
WHERE [timestamp] >= DATEADD(day,-7, GETDATE()) 
GROUP BY DATEADD(dd, 0, DATEDIFF(dd, 0, [timestamp])) 
ORDER BY [timestamp]

我的另一个问题是要制作一个表,该表包含当月名称以及当前和去年的客户数量。这是我最近几周一直在苦苦挣扎的事情,无法解决。

使用与上面相同的表,我试图像这样获取和输出,其中第一列是月份的名称,第二列是当年的客户数量,其后是一列客户数量前一年。

January | 1345 | 299 |
February | 231 | 342 |

...

可悲的是,对于当前年份/上一年的查询,我还没有可用的代码,希望你们中的某人知道一种简单的编写方法。:)

马里
SELECT DATENAME(MONTH,[timestamp]) [Month]
      ,COUNT(DISTINCT CASE WHEN YEAR([timestamp]) = YEAR(GETDATE())   
                             THEN username ELSE NULL END) CurrentYear
      ,COUNT(DISTINCT CASE WHEN YEAR([timestamp]) = YEAR(GETDATE())-1 
                             THEN username ELSE NULL END) LastYear
FROM Sales
GROUP BY DATENAME(MONTH,[timestamp]), MONTH([timestamp])
ORDER BY MONTH([timestamp])

这将以以下格式返回数据

╔═══════════╦═════════════╦══════════╗
║   Month   ║ CurrentYear ║ LastYear ║
╠═══════════╬═════════════╬══════════╣
║ February  ║        1000 ║ 0        ║
║ March     ║        1235 ║ 202      ║
║ September ║        1750 ║ 787      ║
╚═══════════╩═════════════╩══════════╝

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server并使用日期,年份和上一年

来自分类Dev

SQL查询特定年份和上一年的数据

来自分类Dev

SQL Server-比较当年的月份和上一年的月份

来自分类Dev

使用Oracle SQL生成一年日期

来自分类Dev

SQL可变日期减去一年

来自分类Dev

上一年的 SQL 运行总数

来自分类Dev

SQL过滤掉任何一年中的特定月份,日期和时间

来自分类Dev

在 SQL 中,如何根据开始日期和经过的天数计算一年中的天数

来自分类Dev

SQL Server:如何获取上一年的数据并在输出中创建一行

来自分类Dev

保留上一年数据的累积总和 - SQL Server

来自分类Dev

SQL动态查询上一年和当年的所有数据

来自分类Dev

在SQL中计算当年和上一年同期的值的百分比变化

来自分类Dev

如何在SQL中计算当年和同月与上一年的差值

来自分类Dev

T-SQL上一年下一年总计

来自分类Dev

我应该使用smallint还是numeric(4,0)在SQL Server中存储一年

来自分类Dev

如何使用SQL获取一年中的第一天和一年中的最后一天?

来自分类Dev

如何使用SQL获取一年中的第一天和一年中的最后一天?

来自分类Dev

2上一年的数据的可变SQL查询

来自分类Dev

SQL Server 2005:查找一年不下订单的客户

来自分类Dev

PHP的当前年份和上一年

来自分类Dev

具有一年结果的SQL列和具有另一年结果的其他列

来自分类Dev

仅提到月份和年份时,sql server日期差异

来自分类Dev

SQL Server日期比较仅基于月份和年份

来自分类Dev

Teradata SQL同一周的上一年同一天

来自分类Dev

SQL根据一年中的时间返回标准日期

来自分类Dev

Oracle SQL:从日期中提取一年中的第几周给出随机结果

来自分类Dev

从一年多以前的 SQL 数据库中搜索日期

来自分类Dev

将日期时间 sql 值更新整整一年

来自分类Dev

如何显示来自上个月同一月份的上一年同期SQL Server 2008的数据

Related 相关文章

  1. 1

    SQL Server并使用日期,年份和上一年

  2. 2

    SQL查询特定年份和上一年的数据

  3. 3

    SQL Server-比较当年的月份和上一年的月份

  4. 4

    使用Oracle SQL生成一年日期

  5. 5

    SQL可变日期减去一年

  6. 6

    上一年的 SQL 运行总数

  7. 7

    SQL过滤掉任何一年中的特定月份,日期和时间

  8. 8

    在 SQL 中,如何根据开始日期和经过的天数计算一年中的天数

  9. 9

    SQL Server:如何获取上一年的数据并在输出中创建一行

  10. 10

    保留上一年数据的累积总和 - SQL Server

  11. 11

    SQL动态查询上一年和当年的所有数据

  12. 12

    在SQL中计算当年和上一年同期的值的百分比变化

  13. 13

    如何在SQL中计算当年和同月与上一年的差值

  14. 14

    T-SQL上一年下一年总计

  15. 15

    我应该使用smallint还是numeric(4,0)在SQL Server中存储一年

  16. 16

    如何使用SQL获取一年中的第一天和一年中的最后一天?

  17. 17

    如何使用SQL获取一年中的第一天和一年中的最后一天?

  18. 18

    2上一年的数据的可变SQL查询

  19. 19

    SQL Server 2005:查找一年不下订单的客户

  20. 20

    PHP的当前年份和上一年

  21. 21

    具有一年结果的SQL列和具有另一年结果的其他列

  22. 22

    仅提到月份和年份时,sql server日期差异

  23. 23

    SQL Server日期比较仅基于月份和年份

  24. 24

    Teradata SQL同一周的上一年同一天

  25. 25

    SQL根据一年中的时间返回标准日期

  26. 26

    Oracle SQL:从日期中提取一年中的第几周给出随机结果

  27. 27

    从一年多以前的 SQL 数据库中搜索日期

  28. 28

    将日期时间 sql 值更新整整一年

  29. 29

    如何显示来自上个月同一月份的上一年同期SQL Server 2008的数据

热门标签

归档