powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / работа с таблицами
4 сообщений из 4, страница 1 из 1
работа с таблицами
    #38656739
DANK_AN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица table1. В ней поля Art,data,prim.
Есть таблица table2. В ней поля Artcd,sum.
Нужно в таблицу table1 скопировать поле sum из таблицы table2 при условии table1.Art=table2.Artcd


Спасибо!
...
Рейтинг: 0 / 0
работа с таблицами
    #38657160
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот так можно попробовать
Код: sql
1.
SELECT Art, data_, prim_, sum_ FROM  Table_1, Table_2 WHERE Table_1.Art = Table_2.Artcd INTO CURSOR Table_1


+ для наглядности
Код: sql
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.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
  WITH CREATEOBJECT("Form_1")
  	.show(1)
  ENDWITH
 DEFINE CLASS form_1 AS Form
    AutoCenter = .T.
  	Height     =  305
  	Width      =  500
  	Caption    = "Form_1"
  	Name       = "Form_1"
    BackColor  = RGB(245,243,222)

PROCEDURE load
  CREATE CURSOR table_1 (Art N(2), data_ D(8), prim_ C(15)) 
    INSERT INTO table_1 VALUES ( 1, DATE()   , 'Смирнов №1')
    INSERT INTO table_1 VALUES ( 1, DATE()-10, 'Смирнов №2')
    INSERT INTO table_1 VALUES ( 2, DATE()-20, 'Смирнов №3')
    INSERT INTO table_1 VALUES ( 2, DATE()-30, 'Смирнов №4')
    INSERT INTO table_1 VALUES ( 3, DATE()-40, 'Смирнов №5')
    GO TOP
  CREATE CURSOR table_2 (Artcd N(2), sum_ N(5)) 
    INSERT INTO table_2 VALUES ( 1, 1    )
    INSERT INTO table_2 VALUES ( 1, 12   )
    INSERT INTO table_2 VALUES ( 2, 123  )
    INSERT INTO table_2 VALUES ( 2, 1234 )
    INSERT INTO table_2 VALUES ( 3, 12345)
    GO TOP
    
ENDPROC



 PROCEDURE Init
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*  LABEL
 This.AddObject('Label_1','Label')
 WITH This.Label_1
     .BackStyle= 0
     .Visible  = .T.
     .TOP      = 10
     .LEFT     = 10
     .Height   = 20
     .Width    = 500
     .Alignment = 2
     .Caption  = 'Простое копирование!'
 ENDWITH
 This.AddObject('Label_2','Label')
 WITH This.Label_2
     .BackStyle= 0
     .Visible  = .T.
     .TOP      = 40
     .LEFT     = 0
     .Height   = 20
     .Width    = 250
     .Alignment = 2
     .Caption  = 'Table_1'
 ENDWITH
  This.AddObject('Label_3','Label')
 WITH This.Label_3
     .BackStyle= 0
     .Visible  = .T.
     .TOP      = 40
     .LEFT     = 250
     .Height   = 20
     .Width    = 250
     .Alignment = 2
     .Caption  = 'Table_2'
 ENDWITH
 
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* GRID
This.AddObject('Grid_1','Grid')
WITH This.Grid_1
 .Height = 200
 .Width  = 230
 .AllowCellSelection = .F. 
 .Top          =  70
 .Left         =  10
 .Visible      = .T. 
 .DeleteMark   = .F.
 .RecordMark   = .F.
 .ReadOnly     = .T.
 .ScrollBars   =  2
 .ColumnCount  =  3
 .HeaderHeight =  0
 .RecordSource = 'Table_1'
 .column1.ControlSource = 'Art'
 .column2.ControlSource = 'data_'
 .column3.ControlSource = 'prim_'
 .column1.width = 50
 .column2.width = 70
 .column3.width = 70
 .column1.Resizable = .F.
 .column2.Resizable = .F.
 .column3.Resizable = .F.
 .column1.Alignment = 4
 .column2.Alignment = 4
 .column3.Alignment = 4
ENDWITH
This.AddObject('Grid_2','Grid')
WITH This.Grid_2
 .Height = 200
 .Width  = 230
 .AllowCellSelection = .F. 
 .Top          =  70
 .Left         =  260
 .Visible      = .T. 
 .DeleteMark   = .F.
 .RecordMark   = .F.
 .ReadOnly     = .T.
 .ScrollBars   =  2
 .ColumnCount  =  2
 .HeaderHeight =  0
 .RecordSource = 'Table_2'
 .column1.ControlSource = 'Artcd'
 .column2.ControlSource = 'sum_'
 .column1.width = 50
 .column2.width = 70
 .column1.Resizable = .F.
 .column2.Resizable = .F.
 .column1.Alignment = 4
 .column2.Alignment = 4
ENDWITH
* Artcd N(2), sum_ N(5)) 

*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* CommandButton 1
 ThisForm.AddObject('com_1','CommandButton_1')
 WITH ThisForm.com_1
     .Caption = 'Скопировать'
     .default = .T.
     .Visible  = .T. 
     .TOP      = 275
     .LEFT     = 200
     .Height   = 25
     .Width    = 100
 ENDWITH


 ENDPROC
 ENDDEFINE
*================================================================*

DEFINE CLASS CommandButton_1 as CommandButton
PROCEDURE click

SELECT Art, data_, prim_, sum_ FROM  Table_1, Table_2 WHERE Table_1.Art = Table_2.Artcd INTO CURSOR Table_1
WITH ThisForm.Grid_1
 .Height = 200
 .Width  = 230
 .AllowCellSelection = .F. 
 .Top          =  70
 .Left         =  10
 .Visible      = .T. 
 .DeleteMark   = .F.
 .RecordMark   = .F.
 .ReadOnly     = .T.
 .ScrollBars   =  2
 .ColumnCount  =  4
 .HeaderHeight =  0
 .RecordSource = 'Table_1'
 .column1.ControlSource = 'Art'
 .column2.ControlSource = 'data_'
 .column3.ControlSource = 'prim_'
 .column4.ControlSource = 'sum_'
 .column1.width = 15
 .column2.width = 70
 .column3.width = 80
 .column4.width = 45
 .column1.Resizable = .F.
 .column2.Resizable = .F.
 .column3.Resizable = .F.
 .column4.Resizable = .F.
 .column1.Alignment = 4
 .column2.Alignment = 4
 .column3.Alignment = 4
 .column4.Alignment = 4
ENDWITH      

      
ThisForm.Refresh 
ENDPROC

...
Рейтинг: 0 / 0
работа с таблицами
    #38657225
Фотография pipos522
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pipos522, редактировать жалко нельзя, вот та наглядней (в примере заменить)
Код: sql
1.
2.
3.
4.
5.
6.
   CREATE CURSOR table_2 (Artcd N(2), sum_ N(5)) 
    INSERT INTO table_2 VALUES ( 1, 1    )
    INSERT INTO table_2 VALUES ( 2, 12   )
    INSERT INTO table_2 VALUES ( 3, 123  )
    INSERT INTO table_2 VALUES ( 4, 1234 )
    INSERT INTO table_2 VALUES ( 5, 12345)
...
Рейтинг: 0 / 0
работа с таблицами
    #38657672
SSn888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pipos522,

Я правильно понял - именно скопировать, добавив значения к имеющимся записям?
Но куда копировать, ведь в получателе нет такого поля?

Если бы было (предполагаю также и наличие индекса на поле Artcd)

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT table2 
   SET ORDER TO Artcod

SELECT table1
   SET RELATION TO art INTo table2
      REPLACE ALL table1.Sum WITH table2.Sum
   SET RELATION TO
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / работа с таблицами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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