17 / 17 / 7
Регистрация: 05.09.2012
Сообщений: 246
1

Выбрать из неправильной таблицы данные в правильную

14.01.2019, 19:20. Показов 1080. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые форумчане,

Помогите придумать способ выбрать из "неправильной" таблицы данные для "правильной".

Что и куда нужно выбрать видно из прилагаемых файлов. Номер сортировки набора значений нужен только для того, чтоб показать что под номером 1 или 2 или 3 всегда будет одинаковый набор значений, которые нужно поместить в одинаковые поля таблицы. Больше чем 3 набора значений не будет.

Я сделал такую выборку используя 3 отдельных запроса и две таблицы. Одна исходная, откуда берутся данные и другая - конечная, куда данные были помещены.
Первый запрос брал набор значений №1 и добавлял в целевую таблицу новые записи а также добавлял в поле SortingFld значение счетчика набора значений №1 в исходной таблице.

SQL
1
2
3
4
5
INSERT INTO CutCodesPrepareForImport ( CutCode, SortingFld, MainPull )
SELECT ImportCutCodes.[4], ImportCutCodes.Код, ImportCutCodes.MainPull
FROM ImportCutCodes
WHERE (((ImportCutCodes.[1])="1"))
ORDER BY ImportCutCodes.Код;
Второй запрос обновлял записи в конечной таблице выбирая из исходной таблицы данные набора значений №2. Связь целевой и исходной таблицы осуществлялась по значению счетчика исходной таблицы минус 1 и значению SortingFld целевой таблицы.

SQL
1
2
3
4
5
6
UPDATE ImportCutCodes INNER JOIN CutCodesPrepareForImport ON 
(ImportCutCodes.Код-1)=CutCodesPrepareForImport.SortingFld 
SET CutCodesPrepareForImport.DocNumb = [ImportCutCodes].[2], 
CutCodesPrepareForImport.PosNumb = [ImportCutCodes].[3], 
CutCodesPrepareForImport.GlassNumb = [ImportCutCodes].[4], 
CutCodesPrepareForImport.MainPull = ImportCutCodes.MainPull;
То же самое делал и третий запрос с данными набора значений №3. Связь опять же по значению SortingFld и значению счетчика исходной таблицы, но теперь уже минус 2

SQL
1
2
3
4
UPDATE ImportCutCodes INNER JOIN CutCodesPrepareForImport ON 
(ImportCutCodes.Код-2)=CutCodesPrepareForImport.SortingFld 
SET CutCodesPrepareForImport.PullNumb = [ImportCutCodes].[3], 
CutCodesPrepareForImport.MainPull = ImportCutCodes.MainPull;
Всё как бы получилось, но мне такой способ не нравится по причине того, что он не безопасный. Если случайно значения счетчиков собются - выборка будет произведена неверно.

Может у вас есть хорошие идеи как это сделать.

Спасибо.
Миниатюры
Выбрать из неправильной таблицы данные в правильную  
Вложения
Тип файла: xlsx Seq.xlsx (11.7 Кб, 1 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2019, 19:20
Ответы с готовыми решениями:

Выбрать данные из таблицы и заменить один столбец с id значениями из другой таблицы
Есть таблица A: A.ID | A.B_ID и таблица B: B.ID | B.TEXT где A.B_ID -> B.ID является...

Выбрать данные из таблицы
Доброго времени суток. У меня диплом по работе с таблицами деканата. Задания: 1. Выбрать с...

Выбрать данные из таблицы
Приветствую. Имеется такая задача. Нужно из таблицы Автомобили выбрать ID (те запрос должен вернуть...

Выбрать данные из таблицы
есть файл rateplan.php, в нем нужно поиск обработать, со страницы rateplan.html и есть файл...

2
Эксперт MS Access
7395 / 4532 / 295
Регистрация: 12.08.2011
Сообщений: 14,016
15.01.2019, 03:03 2
Цитата Сообщение от AMufu Посмотреть сообщение
Что и куда нужно выбрать видно из прилагаемых файлов.
Файла, вы хотели сказать? Там один Ексель.
0
17 / 17 / 7
Регистрация: 05.09.2012
Сообщений: 246
17.01.2019, 18:41  [ТС] 3
Лучший ответ Сообщение было отмечено alvk как решение

Решение

Цитата Сообщение от alvk Посмотреть сообщение
Файла, вы хотели сказать? Там один Ексель.
Я вставлял еще скрин того же файла ексель, но он почему-то не отображается. Ну да не важно. Я сделал так (как оказалось не так и сложно )))
Visual Basic
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
  Set DB = CurrentDb
  
  sq = "SELECT ImportCutCodes.MainPull, ImportCutCodes.[1], ImportCutCodes.[2], ImportCutCodes.[3], " & _
        "ImportCutCodes.[4], ImportCutCodes.[5], ImportCutCodes.Код " & _
        "FROM ImportCutCodes ORDER BY ImportCutCodes.Код"
    
  Set RSImp = DB.OpenRecordset(sq, dbOpenSnapshot)
  Set RSTargetTbl = DB.OpenRecordset("CutCodesPrepareForImport", dbOpenDynaset)
 
  Do Until RSImp.EOF
    MsgBox ("RSImp![Код]: " & RSImp![Код])
    
    Select Case RSImp![1]
        Case 1
 
        RSTargetTbl.AddNew
        RSTargetTbl!MainPull = RSImp!MainPull
        RSTargetTbl!CutCode = RSImp![4]
        RSTargetTbl!SortingFld = RSImp![Код]
 
 
        RSImp.MoveNext
 
        Case 2
 
        
        RSTargetTbl!DocNumb = RSImp![2]
        RSTargetTbl!PosNumb = RSImp![3]
        RSTargetTbl!glassNumb = RSImp![4]
 
        RSImp.MoveNext
 
        Case 3
 
        RSTargetTbl!PullNumb = RSImp![3]
        RSTargetTbl.Update
 
        RSImp.MoveNext
    
    End Select
    
  Loop
1
17.01.2019, 18:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.01.2019, 18:41
Помогаю со студенческими работами здесь

Выбрать данные из таблицы
Добрый день! Подскажите как написать цыкл для выборки данных из таблицы. К примеру у меня есть...

Выбрать данные из таблицы по дате
Всем привет! Ребят подскажите как выбрать, вроде тривиальная задача, а уже мозг вынес себе. ...

Выбрать данные из таблицы Excel
как можно сделать выборку данных из таблицы excel

Как выбрать из таблицы данные по oid
Ситуация следующая. Есть oid таблицы (pg_class.oid) и номер\имя колонки (pg_attribute.attname или...

Выбрать данные из таблицы формы select
Есть таблица с полями id rayon adress price есть форма <form action="result.php"...

Выбрать данные из таблицы и вставить в XML
est tabliza, kotoraia sostoit is polei: 'url', 'category'(smallint), 'visits', 'date_in',...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru