2012-10-23 19 views
-1
DATA PRODINVENTRY; 
INPUT STORE $ PRODUCT $ BUY_SELL $ DATE DDMMYY10. UNITS PRICE INVENTRY; 
CARDS; 
1 pen  B 01/01/2012 2 10.00 2 
1 pen  B 04/02/2012 8 15.00 10 
1 pen  S 08/02/2012 10 15.00 0 
1 pencil B 02/02/2012 5 5.00 5 
1 pencil S 04/02/2012 4 7.00 1 
2 book  B 01/01/2012 5 20.00 5 
2 book  S 05/02/2012 6 30.00 -1 
2 notebook B 02/02/2012 4 15.00 4 
2 notebook S 04/02/2012 5 15.00 -1 
3 rubber B 01/01/2012 2 5.00 2 
3 rubber B 02/02/2012 2 5.00 4 
3 rubber B 04/02/2012 2 5.00 6 
3 rubber S 05/02/2012 5 5.00 1 
4 slipper B 01/01/2012 3 150.00 3 
4 slipper B 02/02/2012 5 200.00 8 
4 slipper B 04/02/2012 5 100.00 13 
4 slipper S 05/02/2012 14 90.00 -1 
5 desktop B 02/02/2012 4 30000.00 4 
5 desktop S 04/02/2012 3 30000.00 1 
5 desktop S 05/02/2012 1 30000.00 0 
5 laptop S 01/01/2012 3 20000.00 -3 
5 laptop B 08/02/2012 8 20000.00 5 
; 

這是產品購買/銷售日期數據與單位發明。數據有錯誤。銷售單位超過購買。 2.出售之前買單位。 我想刪除所有錯誤的條目或通過更改商店內的日期或單位來糾正數據。注意:在一家商店購買產品後,只能銷售產品。更正產品買錯日期明智數據

+3

我建議你提供一些關於你如何解決這個問題的信息。如前所述,它看起來像一個家庭作業問題,沒有人通過簡單地爲你解決問題而幫助任何人;如果它不是家庭作業,那麼對於如何解決這個(相當簡單)的問題,你仍然應該有一些想法。如果您對您的方法的某些元素的工作方式有更具體的問題,您會得到更多有用的反饋意見並瞭解有關SAS的更多信息。 – Joe

+0

我用sql來解決問題,但只有我可以解決產品problum,購買單位更多等於銷售單位。我對sas很陌生,所以請幫我一個忙。 –

+0

PROC SQL NOPRINT; CREATE TABLE ERROR AS SELECT S. *,S.UNITS-B.UNITS AS EXTRA_SOLD FROM BUYINVENTRY AS乙RIGHT JOIN SELLINVENTRY爲S ON B.PRODUCT = S.PRODUCT AND B.STORE = S.STORE HAVING乙.UNITS

回答

0

第二部分的SQL解決方案與第一部分沒有太大差異。你可以用連接或存在的子查詢來完成它(同樣,你已經解決的第一部分也可以用它來解決);這裏是存在的版本:

proc sql; 
create table error as 
    select * from PRODINVENTRY S 
    where buy_sell='S' and not exists (
     select 1 from PRODINVENTRY B 
     where B.buy_sell='B' and B.store=S.store and B.product=S.product and B.date<S.date); 
quit; 

如果你想在一個步驟中,您可以有兩個很容易存在的子查詢[和(不存在(...)或不存在(...))做兩或兩個連接。

0

data SAMPLE;

set PRODINVENTRY;

FORMAT DATE DATE9。

如果INVENTRY> UNITS那麼INVENTRY = UNITS;

run;

+0

如果你解釋它,這將是一個更強的答案,而不僅僅是說明解決方案。 –