日期:2014-05-19  浏览次数:20473 次

幫忙理一下思路:這個判斷倉庫呆料的SQL該怎么寫
某一特定物品在倉庫 'CK01 '和     'CK02 '是否為超過60天的呆料    
如果兩個倉庫都有的物品,只要判斷在 'CK01 '這個倉庫是否超過60天就好了(即使在 'CK02 '是符合條件的呆料也不算)。    
總感覺偶下面寫的不妥,請路過的大俠幫忙理一下思路~~    
 
SELECT     DISTINCT     ITEM_NO     INTO     V_ITEM    
                  FROM     IV_STOC_D    
                                      WHERE         ORG_ID     =     P_ORG    
                                      AND     STOC_NO     IN     ( 'CK01 ',     'CK02 ')    
                  AND     LAST_TRDATE     <=     (SYSDATE     -     60)    
                  AND     STOC_QTY     >     0    
                  AND     ITEM_NO=P_ITEM    
                  AND     (ITEM_NO     IN     (SELECT     ITEM_NO     FROM     IV_STOC_D     WHERE     STOC_NO= 'CK01 ')    
                          OR     ITEM_NO     IN     (SELECT     ITEM_NO     FROM     IV_STOC_D     WHERE     STOC_NO= 'CK02 '        
                                                  AND     ITEM_NO     NOT     IN(SELECT     ITEM_NO     FROM     IV_STOC_D     WHERE     STOC_NO= 'CK01 ')))

------解决方案--------------------
不知道表结构,你那些条件不知道干什么的...
select item_no from ck01 where LAST_TRDATE <= (SYSDATE - 60)
union
(select item_no from ck02 where LAST_TRDATE <= (SYSDATE - 60)
minus
select item_no from ck01 where LAST_TRDATE > (SYSDATE - 60))


------解决方案--------------------
主键是那个?
------解决方案--------------------
幫忙看一下,下面的語句為什么會出錯:

-----------------
下面语句不是 sql的语法啊..
------解决方案--------------------
SELECT DISTINCT item_no
INTO v_item
FROM iv_stoc_d
WHERE org_id = p_org
AND stoc_no IN ( 'CK01 ', 'CK02 ')
AND last_trdate <= (SYSDATE - 60)
AND stoc_qty > 0
AND item_no = p_item