powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
8 сообщений из 8, страница 1 из 1
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
    #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
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
    #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
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
    #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
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
    #35704296
Galyamov Rinat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересный диалект SQL. Это где такой используется?

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

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


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

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

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

применительно к фокспро я дал Вам ответ, привел код который делает то, что Вы просили.
для более детального и корректного ответа правильно ставьте задачу
(задавайте вопрос)
...
Рейтинг: 0 / 0
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
    #35704667
lena-797
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как изменился бы запрос если нужно было добавить из таблицы 1 значения в таблицу 2 по ключевому полю, при этом значения в таблице 1 есть не по всем ключевым полям. вот у меня и получается что из таблицы 2 удаляются те строки в ключевом поле по которым нет записей в таблице 2.
А диалект мне не важен мне сам принцип. Переложить я сумею.
И еще спасибо большое за участие и внимание к моей проблеме.
...
Рейтинг: 0 / 0
ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
    #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
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ПАМАГИТЕ!!! Ошибка в добавлении данных из двух таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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