2012-10-23 2 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 
; 

это продукт купить/продать datewise данные с единицами изобретения. есть ошибка в данных. 1. Продал единицы больше, чем покупать. 2. продал единицы перед покупкой. Я хочу удалить все неправильные записи или исправить данные, изменив дату или единицы в магазине. Примечание. Продукцию можно продавать только после того, как продукт был куплен для одного магазина.исправить ошибку в продукте купить продать данные мудрые данные

+3

Я предлагаю вам предоставить некоторую информацию о том, как вы пытаетесь решить эту проблему. Как представлено, это похоже на проблему домашней работы, и никто не делает никого в пользу, просто решая ее для вас; и если это не домашнее задание, вы все равно должны подумать о том, как решить эту (довольно простую) проблему. Если у вас есть более конкретные вопросы относительно того, как определенные элементы вашего подхода могут работать, вы получите более полезную обратную связь и узнаете больше о SAS. – Joe

+0

Я использовал sql для решения проблемы, но только я могу решить проблему с продуктом, купить единицы более чем равны проданным единицам. Я новичок в саске, поэтому, пожалуйста, сделайте мне одолжение. –

+0

PROC SQL NOPRINT; CREATE TABLE ERROR AS SELECT, С. *, S.UNITS-B.UNITS КАК EXTRA_SOLD ОТ BUYINVENTRY КАК RIGHT JOIN B SELLINVENTRY AS S ПО B.PRODUCT = S.PRODUCT И B.STORE = S.STORE HAVING B .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

данные ОБРАЗЕЦ;

комплект PRODINVENTRY;

FORMAT DATE DATE9 .;

Если INVENTRY> UNITS, то INVENTRY = UNITS;

run;

+0

Это будет более сильный ответ, если вы объясните это, а не просто сформулируйте решение. –