Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц / 8 сообщений из 8, страница 1 из 1
09.12.2008, 19:22
    #35703778
lena-797
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
Здравствуйте! Помогите кто чем сможет. Я в тупике.
Есть таблица А с полями 1, 2, 3.
необходимо создать новую таблицу к А добавить значения поля 4 из таблицы Б с полями 1,6. причем в Б данные не по всем 1.
в итоге должно быть так
Таблица А
1|2|3|
а|к|у|
п|к|в|

Таблица Б
1|4|
а|е|

После добавления
Таблица В
1|2|3|4
а|к|у|е
п|к|в|-
а у меня получается что в В остаются только те люди, данные по которым есть в таблице Б.
SQL.TABLE Б \FROM Б
SQL.SELECT А \FROM А a; LEFT JOIN Б b;
on a.1=b.1 ;
\FIELDS a.*; 5:=b.4;
\having b.cpdate=дНачДата
...
Рейтинг: 0 / 0
09.12.2008, 20:59
    #35703930
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
create cursor tt (f1 c( 1 ),f2 c( 1 ),f3 c( 1 ))
insert into tt values ("а","к","у") 
insert into tt values ("п","к","в")

create cursor tt2 (f1 c( 1 ),f2 c( 1 ))
insert into tt2 values ("а","е") 

#if .f.
 1 | 2 | 3 | 4  
а|к|у|е 
п|к|в|- 
#endif 

select  t1.f1 ;
       ,t1.f2 ;
       ,t1.f3 ;
       ,Nvl(t2.f2,"-") ;
	from tt t1 ;
		left join tt2 t2 on t1.f1=t2.f1

having b.cpdate=дНачДата
в описании источников этого нет
правильно поставьте задачу
...
Рейтинг: 0 / 0
10.12.2008, 04:25
    #35704275
lena-797
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
прошелмимо,

SQL.TABLE В \FROM Б
SQL.SELECT А \FROM А a; LEFT JOIN Б b;
on a.1=b.1 ;
\FIELDS a.*; 5:=Nvl(b.4,0000000000000000.0000);

Я опять что-то упустила? Не очень поняла блок с условием, но все равно не получается
А это:
\having b.cpdate=дНачДата

доплнительное условия дата периода должна тоже совпадать.
...
Рейтинг: 0 / 0
10.12.2008, 05:38
    #35704296
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
Интересный диалект SQL. Это где такой используется?

HAVING используется ТОЛЬКО с директивой GROUP BY.

Но, конечно, может, в вашем диалекте SQL это не так.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
10.12.2008, 09:02
    #35704396
lena-797
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
Galyamov Rinat,

дело не в HAVING. А диалект действительно не стандартный:), но близкий к Foxю Просто не пойму почему он выводит из первой таблицы только те значения по которым есть данные во второй таблице. и все значения которых нет во второй стирает.
...
Рейтинг: 0 / 0
10.12.2008, 09:34
    #35704449
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
авторА диалект действительно не стандартный:), но близкий к Foxю

Вам необходим совет разработчикам, использующим этот диалект (среду)

применительно к фокспро я дал Вам ответ, привел код который делает то, что Вы просили.
для более детального и корректного ответа правильно ставьте задачу
(задавайте вопрос)
...
Рейтинг: 0 / 0
10.12.2008, 10:58
    #35704667
lena-797
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
А как изменился бы запрос если нужно было добавить из таблицы 1 значения в таблицу 2 по ключевому полю, при этом значения в таблице 1 есть не по всем ключевым полям. вот у меня и получается что из таблицы 2 удаляются те строки в ключевом поле по которым нет записей в таблице 2.
А диалект мне не важен мне сам принцип. Переложить я сумею.
И еще спасибо большое за участие и внимание к моей проблеме.
...
Рейтинг: 0 / 0
10.12.2008, 11:51
    #35704878
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
пример как добавить в t2 из t1 те записи, которых нет в t2

Код: plaintext
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.
create cursor t1 (id i,value c( 10 ))
insert into t1 values( 1 ,'1')
insert into t1 values( 2 ,'2')
insert into t1 values( 3 ,'3')

create cursor t2 (id i,value c( 10 ))
insert into t2 values( 2 ,'2')

* вариант  1 
insert into t2 (id, value) ;
	select id, value ;
		from t1 ;
		where t1.id not in (select id ;
								from t2)
								
* вариант  2 
insert into t2 (id, value) ;
	select id, value ;
		from t1 ;
		where not exists (select * ;
								from t2 ;
								where t2.id=t1.id)
								
select * ;
	from t2
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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