2016-02-10 41 views
-3

我怎样写一个SQL查询,其中,如果值是空的当月就与上月值填充,感谢您的帮助复制上月数据,如果当前的月份是空

+1

你可能会在case语句中使用LAG函数。你有什么尝试?有一个示例查询我们开始? – LordBaconPants

+0

http://stackoverflow.com/help/how-to-ask –

+0

说实话我是新来的SQL,不知道如何开始我只知道选择和连接的基本知识我会尝试处理一些示例代码和发布结果。谢谢你回到我这么快 –

回答

0

你应该注意的哪种类型SQL您使用,并提供一些示例数据,以帮助人们帮助你...

在Oracle中,你可以使用一个壳体内LAG功能声明,像这样:如果数据看起来像

这个:

MONTH | Value 
___________________ 
JAN2016 | 100.00 
FEB2016 | 
MAR2016 | 342.60 
APR2016 | 450.20 

代码:

SELECT 
    MONTH, 
    CASE WHEN Value is null then LAG(Value OVER MONTH,1) else Value END as Value 
FROM 
    myTable; 

其结果将是:

MONTH | Value 
________________________ 
    JAN2016 | 100.00 
    FEB2016 | 100.00 
    MAR2016 | 342.60 
    APR2016 | 450.20 

该解决方案将工作,只要你没有两个或两个以上连续两个月用null值。 ..如果发生这种情况,那么你的解决方案会更复杂一点。

+0

谢谢,这将是我的开始,并会提出更好的问题,再次感谢所有人.... –

相关问题