比方说,我有一个表,看起来像这样:的SQL Server 2012:可以在IIF功能拿起基于条件的最后分配的值
+---------+-----------+------------+
| Company | Quantity | Date |
+---------+-----------+------------+
| A | 10000 | 2016-08-01 |
| B | -5000 | 2016-08-01 |
| C | 5000 | 2016-08-01 |
| A | 5000 | 2016-08-02 |
| B | -2500 | 2016-08-02 |
| C | 5000 | 2016-08-02 |
| A | 0 | 2016-08-03 |
| B | 0 | 2016-08-03 |
| C | 5000 | 2016-08-03 |
+---------+-----------+------------+
我试图创建一个名为列的视图IssuerLS如果数量为+ ve,则列值为'L',如果数量为-ve,列值将为'S'。这部分很容易与IIF的功能,但我也想用最后已知的值,如果数量为0,所以我认为应该是这样的:
+---------+----------+------------+----------+
| Company | Quantity | Date | IssuerLS |
+---------+----------+------------+----------+
| A | 10000 | 2016-08-01 | L |
| B | -5000 | 2016-08-01 | S |
| C | 5000 | 2016-08-01 | L |
| A | 5000 | 2016-08-02 | L |
| B | -2500 | 2016-08-02 | S |
| C | 5000 | 2016-08-02 | L |
| A | 0 | 2016-08-03 | L |
| B | 0 | 2016-08-03 | S |
| C | 5000 | 2016-08-03 | L |
+---------+----------+------------+----------+
有没有办法做到让IIF函数来如果数量为0,则使用每个公司最后一次已知的'L'或'S'值?
谢谢。
IIF()只看到了它的输入值。 'iif(somecondition,truevalue,falsevalue)'。你必须提供'somecondition'的逻辑,而不是iif()。 –
根据最后一个已知值添加L和S的逻辑是什么 – TheGameiswar
因此,对于例如公司A,如果Quantity = 0,则返回数量不为0的最后一个已知日期(在本例中为2016-08 -02),并根据当天的数量(本例中为“L”)添加“L”或“S”。 – MilesToGoBeforeISleep