首页 > 解决方案 > SQL 查询不输出结果

问题描述

大家好,我在这里遇到了一个我正在尝试实现的查询的问题......

问题是下一个...

我想显示从 01-2014 到现在的月份和年份。

当我运行此查询时,它只显示一条消息“命令运行正确”并且不显示任何内容......

我在哪里做错了?

谢谢。

Declare @año int, @mes int, @m int

Set @año = Year(Getdate())
Set @mes = Month(Getdate())
Set @m = 0

While @año < 2014 begin
    While @m < 12 begin
        Select @año as año, @m as mes
        set @m = @m + 1
    End
    Set @año = @año - 1
    Set @m = 0
End

标签: sql

解决方案


因此,您没有看到任何输出@año < 2014@año = 2019因此它没有进入循环)。只要条件为真,就会执行while循环。在您的示例中,从一开始就是错误的。此外,

  1. 你设置@m = 0,我改成1。出现了一个数字为 0 的月份。
  2. 你设置@m < 12,我改成13。因为它,十二月缺席。

    Declare @año int, @mes int, @m int

    Set @año = Year(Getdate())
    Set @mes = Month(Getdate())
    Set @m = 1
    
    While @año > 2014 begin
        While @m < 13 begin
            Select @año as año, @m as mes
            set @m = @m + 1
        End
        Set @año = @año - 1
        Set @m = 1
    End
    

推荐阅读