как лучше объединитъ три таблицы и отсортировать ?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

как лучше объединитъ три таблицы и отсортировать ?

Сообщение student-uni » 11.01.2006 (Ср) 18:37

Естъ три таблицы с абсолютно разными полями.
Одинаковые поля лишь 1-ое Индекс и 2-ое Имя
Осталъные абсолютно разные причем и число и типы полеи разные.

Нужно составить из них одну таблицу так чтобы
1 и 2 поля были "подклеены" один под другим,
(все 1-Индекса в первом столбце все 2-Имена во втором)
А вот под осталъные выделялся отдельныи столбец.

Плюс отсортировать потом по имени

Пример дано

Таблица 1
1, Имя1, Параметр1, Параметр2

Таблица 2
1, Имя2, Параметр3, Параметр4, Параметр5

Таблица 3
1, Имя3, Параметр1, Параметр6

Результирующая таблица должна выглядеть так

1, Имя3, Параметр1, Параметр6
1, Имя2, Параметр3, Параметр4, Параметр5
1, Имя1, Параметр1, Параметр2



Я использовал для етои цели двумерный массив
1. Скачал таб1 в датасет
2. Определил размеры - число строк/столбцов

3. Скачал таб2 в датасет
4. Определил размеры - число строк/столбцов

5. Скачал таб3 в датасет
6. Определил размеры - число строк/столбцов

Обьявил двум массив размера (сумма строк, наибольшее число столбцов)

Пробежал каждыи датасет и залил данные в массив /дополняя каждыи раз/

Сохранил данные в базу данных

Вызвал запросом с сортировкои.


Вопросы:
Может кто подскажет более елегантное решение проблемы
1. обьединения таблиц
2. сортировки /как сохранить в отсортированном виде !!/
3. я могу оперировать только числами, если в одном из полеи текст - ето не работает.

Спасибо всем

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.01.2006 (Ср) 19:07

1. SELECT * FROM .... UNION ALL SELECT * FROM .... UNION ALL SELECT * FROM ....
2. Сортировка имеет смысл при представлении данных, а не при хранении их в базе.
3. Сервер разберётся, если сможет. Если не сможет, будешь конвертить ручками.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

student-uni
Бывалый
Бывалый
 
Сообщения: 242
Зарегистрирован: 01.10.2005 (Сб) 18:54

Сообщение student-uni » 11.01.2006 (Ср) 19:27

1. При неравном числе колонок ето не работает, но океи, с помошю дополнительного запроса можно уравнятЬ
2. Ок
3. Как же ето я ручками то из текста в цифры? Но ок, можно обьявить текстовыи массив
и конвертить из Цифр в текст. ТОлько вот как его обьявить ?
Dim strArray(6,3) As String ?

и чего ето будет ? Массив 6 на три слова или массив 6 на три буквы ?

/да простит меня модератор за термины "три слова" и "три буквы"/

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 12.01.2006 (Чт) 6:15

1. SELECT field1, feield2, NULL FROM Table1 UNION ALL SELECT field1, field2, field3 FROM Table2.
3. Я же говорю, сервер разберётся. Если не разберётся, будешь руками. Если не хочешь руками, скажи хоть, какая база.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList  
cron