问一个简单的SELECT语句
某个仓库的某个商品的库存如下:
storage_id ph storage_num in_date(最后到货时间)
gs14 456 2 2007-08-01
gs15 789 4 2007-04-01
gs16 012 2 2007-03-01
gs17 345 -3 2007-05-01
gs2 123 0 2007-01-01
我想得到
storage_id ph storage_num in_date
gs16 012 2 2007-03-01
gs15 789 4 2007-04-01
gs14 456 2 2007-08-01
gs17 345 -3 2007-05-01
gs2 123 0 2007-01-01
也就是说:storage_num> 0的按“in_date → ph → storage_num”,而storage_num <=0的则按“storage_num → ph → in_date”
请问这个SELECT如何写,谢谢。
------解决方案--------------------To Limpire(昨夜小楼)
我的storage_num不是字符型,而是NUMERIC;in_date是DATETIME
---------------------------
datetime其实是浮点型,和numeric可以隐式互转,不用datediff可以。
我的测试表in_date用varchar(10),例如:2007-12-01
和int不能隐式互转,所以要用datediff。