1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
*(Вопрос) У меня есть база данных (файл *.sav), в которой ключом (уникальным идентификатором строк)
	является набор из 4 переменных. Есть также второй файл *.sav, который содержит перечень
	ключей (список идентификаторов строк), которые должны быть удалены из базы данных.
	Как бы мне организовать процедуру удаления?
	
*(Ответ) Автор: rlevesque@videotron.ca, 17.09.2001.

DATA LIST LIST /id1 id2 id3 id4 data1.
BEGIN DATA
1 1 1 1 1
1 2 1 1 2
2 1 1 1 3
2 2 2 2 4
END DATA.
LIST.
SORT CASES BY id1 id2 id3 id4.
SAVE OUTFILE='c:\\temp\\database.sav'.

DATA LIST LIST /id1 id2 id3 id4.
BEGIN DATA
1 1 1 1 
2 2 2 2 
END DATA.
LIST.
SORT CASES BY id1 id2 id3 id4.
SAVE OUTFILE='c:\\temp\\delete list.sav'.

***** Start job.
GET FILE='c:\\temp\\delete list.sav'.
COMPUTE del=1.
SAVE OUTFILE='c:\\temp\\delete list.sav'.

GET FILE='c:\\temp\\database.sav'.


MATCH FILES /FILE=*
 /TABLE='C:\\Temp\\delete list.sav'
 /BY id1 id2 id3 id4.

* Следующая строка удаляет ненужные наблюдения.
SELECT IF MISSING(del).
* Удалим более ненужную переменную del.
MATCH FILES FILE=* /DROP=del.