Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос Delete c Inner join / 7 сообщений из 7, страница 1 из 1
16.09.2008, 10:08
    #35541211
mikola123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос Delete c Inner join
КАК ЗАСТАВИТЬ ЭТО РАБОТАТЬ??? Почему Delete не хочет работать с Inner Join???

DELETE FROM VOB06 INNER JOIN
(SELECT VOB06.NAME1, VOB06.NAME2, VOB06.NAME3, VOB06.BIRTH_DATE, MIN(VOB06.START) AS MIN_START
FROM (SELECT VOB06.NAME1, VOB06.NAME2, VOB06.NAME3, VOB06.BIRTH_DATE,MIN(VOB06.UP_DATE) AS MIN_UD FROM
(
(SELECT NAME1,NAME2,NAME3,BIRTH_DATE,COUNT(NAME1) FROM VOB06 GROUP BY NAME1,NAME2,NAME3,BIRTH_DATE HAVING COUNT(NAME1)>1)
AS V INNER JOIN VOB06 ON (V.NAME1=VOB06.NAME1)AND(V.NAME2=VOB06.NAME2)AND(V.NAME3=VOB06.NAME3)AND(V.BIRTH_DATE=VOB06.BIRTH_DATE)
)
INNER JOIN STREET2 ON VOB06.STRT_CODE=STREET2.CODE
GROUP BY VOB06.NAME1, VOB06.NAME2, VOB06.NAME3, VOB06.BIRTH_DATE
) AS VV INNER JOIN VOB06 ON (VV.MIN_UD = VOB06.UP_DATE) AND (VV.BIRTH_DATE = VOB06.BIRTH_DATE) AND (VV.NAME3 = VOB06.NAME3) AND (VV.NAME2 = VOB06.NAME2) AND (VV.NAME1 = VOB06.NAME1)
GROUP BY VOB06.NAME1, VOB06.NAME2, VOB06.NAME3, VOB06.BIRTH_DATE) AS VVV ON VVV.NAME1=VOB06.NAME1
...
Рейтинг: 0 / 0
16.09.2008, 10:27
    #35541255
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос Delete c Inner join
видел такие запросы только у знатоков и ке....

переписывайте
и делайте чем проще - тем лучше

нужно ли обязательно подзапросы?
постоянных таблиц или курсоров с условиями ограничения недостаточно?

да, просьба - офрмляйте скрипты с тегами и оформлением по-человечьи
прочитать невозможно
Код: plaintext
1.
2.
  select * ;
             from ...
    
...
Рейтинг: 0 / 0
16.09.2008, 10:36
    #35541281
12345зайчик
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос Delete c Inner join
сделал за Вас,
может кто-то будет копать - но на мой взгляд это бред,
кто-то накрутил и хотел что-бы кто-нибудь убился

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
DELETE ;
	FROM VOB06 ;
		INNER JOIN (SELECT VOB06.NAME1, ;
						   VOB06.NAME2, ;
						   VOB06.NAME3, ;
						   VOB06.BIRTH_DATE, ;
						   MIN(VOB06.START) AS MIN_START  ;
						FROM (SELECT VOB06.NAME1, ;
									 VOB06.NAME2, ;
									 VOB06.NAME3, ;
									 VOB06.BIRTH_DATE, ;
									 MIN(VOB06.UP_DATE) AS MIN_UD ;
								FROM((SELECT NAME1,NAME2,NAME3,BIRTH_DATE,COUNT(NAME1) ; 
											FROM VOB06 ;
											GROUP BY NAME1,NAME2,NAME3,BIRTH_DATE ;
											HAVING COUNT(NAME1)> 1 ) AS V ;
												INNER JOIN VOB06 ON (V.NAME1=VOB06.NAME1)AND(V.NAME2=VOB06.NAME2)AND(V.NAME3=VOB06.NAME3)AND(V.BIRTH_DATE=VOB06.BIRTH_DATE) ;
							  		  ) ;
									INNER JOIN STREET2 ON VOB06.STRT_CODE=STREET2.CODE ;
							GROUP BY VOB06.NAME1, VOB06.NAME2, VOB06.NAME3, VOB06.BIRTH_DATE) AS VV  ;
		INNER JOIN VOB06 ON (VV.MIN_UD = VOB06.UP_DATE) AND (VV.BIRTH_DATE = VOB06.BIRTH_DATE) AND (VV.NAME3 = VOB06.NAME3) AND (VV.NAME2 = VOB06.NAME2) AND (VV.NAME1 = VOB06.NAME1) ;
	GROUP BY VOB06.NAME1, VOB06.NAME2, VOB06.NAME3, VOB06.BIRTH_DATE) AS VVV ON VVV.NAME1=VOB06.NAME1
...
Рейтинг: 0 / 0
16.09.2008, 12:11
    #35541564
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос Delete c Inner join
В общем случае, если в команде DELETE используется опция FROM, то надо конкретизировать из какой таблицы удалять будем, явно указав эту таблицу сразу за опцией DELETED

Код: plaintext
DELETE VOB06 FROM ...

Но вообще-то, 12345зайчик прав. Вы сами-то хоть понимаете что именно удалит этот запрос? А если понадобиться что-то изменить в алгоритме отбора удаляемых записей?

Запрос явно перегружен совершенно не нужными подзапросами и лишними таблицами-источниками. Ну, вот зачем Вы вообще использовали таблицу STREET2 и с чем ее связываете?

У Вас запрос (без команды DELETE) будет работать? Ну, если вместо DELETE написать

SELECT * FROM ...
...
Рейтинг: 0 / 0
16.09.2008, 14:30
    #35542062
mikola123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос Delete c Inner join
Там написанно все как надо, такая куча подзапросов, только потому что, задача состоит из трех подзадач, которые реализуется поэтапным отбором!!! И в конце все, что получится нужно удалить, поэтому используется такая громоздкая запись
...
Рейтинг: 0 / 0
16.09.2008, 14:32
    #35542070
mikola123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос Delete c Inner join
12345зайчиквидел такие запросы только у знатоков и ке....

переписывайте
и делайте чем проще - тем лучше

нужно ли обязательно подзапросы?
постоянных таблиц или курсоров с условиями ограничения недостаточно?

да, просьба - офрмляйте скрипты с тегами и оформлением по-человечьи
прочитать невозможно
Код: plaintext
1.
2.
  select * ;
             from ...
    


рад был бы сделать проще, ан нет не получится ((
...
Рейтинг: 0 / 0
16.09.2008, 14:34
    #35542076
mikola123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос Delete c Inner join
ВладимирМВ общем случае, если в команде DELETE используется опция FROM, то надо конкретизировать из какой таблицы удалять будем, явно указав эту таблицу сразу за опцией DELETED

Код: plaintext
DELETE VOB06 FROM ...

Но вообще-то, 12345зайчик прав. Вы сами-то хоть понимаете что именно удалит этот запрос? А если понадобиться что-то изменить в алгоритме отбора удаляемых записей?

Запрос явно перегружен совершенно не нужными подзапросами и лишними таблицами-источниками. Ну, вот зачем Вы вообще использовали таблицу STREET2 и с чем ее связываете?

У Вас запрос (без команды DELETE) будет работать? Ну, если вместо DELETE написать

SELECT * FROM ...

Огромное пасиб!!! Именно это и надо было сделать!!!
Код: plaintext
DELETE VOB06 FROM ...
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос Delete c Inner join / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]