Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Уважаемые мастера, подскажите как правильно выполнить [D6, MSSQL]


svt ©   (2006-10-06 09:49:00) 

следующий запрос на sql. есть одна большая таблица из нее надо вытянуть в 2-3 таблице с учетом следующего условия:
1. Одна большая таблица (MainTable):
||   A  ||   B   ||   c    ||   D   ||
2. Из не необходимо создать две таблици
первая таблица (Table1)
||   A  ||   B   ||
и вторая таблица (Table2)
|| A    ||   C   ||   D   ||

Заранее очн благодарен


svt   (2006-10-06 11:22:00) [1]

ок


k2   (2006-10-06 11:09:00) [2]

svt   (06.10.06 11:05) [11]
неа, тестировать тщательнее надо, ну впрочем это офтоп, не буду больше отвлекать от изучения справки


svt   (2006-10-06 11:05:00) [3]


> и это не жизнь, это всего лишь sql

если в жизни один раз не правильно выразишься в ответственный момент, то может настать фатальная ошибка и все .... даже пошаговый дебугер не поможет.... разве аналогии нет?:)


k2   (2006-10-06 10:57:00) [4]

svt   (06.10.06 10:54) [9]
по вашим вопросам пока заметно только штобы вам сделали
если это настолько элементарно, то об чем речь? и это не жизнь, это всего лишь sql
в любом случае на здоровье :)


svt   (2006-10-06 10:54:00) [5]


>  вы его балуете :)

дело не в лени и в не не желании чего-то самому делать.... вопросы, которые я задавал предназначены для того, что бы узнать в каком направлении искать дальше.... согласитесь, что это элементарно..... а в жизни все намного сложнее....
по поводу справки... так я ее уже по данному вопрсу осваеваю...
спасибо за то что переживаете о моем самообразовании :)


Desdechado   (2006-10-06 10:52:00) [6]

> я не понял что значит ->А<- в запросе?
то же, что и в твоем первом посте - имя поля


k2   (2006-10-06 10:48:00) [7]

ЮЮ ©   (06.10.06 10:46) [6]
мне не жалко, но помоему вы его балуете :)
с уважением, k2


k2   (2006-10-06 10:46:00) [8]

svt   (06.10.06 10:37) [4]
в справке по mssql прочитать, што за типы данных number и varchar
и подумать как можно к числовому значению дописать впереди нули и што получится в результате
затем создать таблицы с нужными типами полей
затем написать выборку, если не получается штото конкретное, то ещё раз обратиться за помощью
вообще приложить минимум какихто усилий


ЮЮ   (2006-10-06 10:46:00) [9]

А что делать, если 9? :)
SELECT
 Case
   when Len(Field) < 8 then
     RIGHT('00000000' + Field, 8)
   else
     Field
 end CorectedField
FROM B


svt   (2006-10-06 10:37:00) [10]


> (A NOT IN (SELECT A FROM Table1))

я не понял что значит ->А<- в запросе?

Подскажи пожалуйста. Есть таблица (А) в (предположим из одного столбца) в которой должны содержаться числовые значения двух видов (1- длина числа 10 символов и -  8 символов ). Так же есть еще таблица-исходник(В) в которой содержаться числа с различной длиной. Вот. Необходимо перегнать из таблицы (В) в таблицу (А) значения так, чтобы выполнялось условия:
если length(значение)=10 то так и оставляем
если length(значение)=8 то так и оставляем
если length(значение)<8 то добавляем нули в переди до length(значение)=8

Подскажи как это реализовать в sql


ЮЮ   (2006-10-06 10:20:00) [11]

не в связке, а в части SELECT - ради бога.

При повторной попытке выполнения запроса не забудь очистить таблицы-приемники или исключай попытки вставки дублей
INSERT INTO Table1(A, B)
SELECT DISTINCT A, B FROM MainTable
 WHERE
 ... AND  
 (A NOT IN (SELECT A FROM Table1))


svt   (2006-10-06 10:12:00) [12]


> ЮЮ ©   (06.10.06 10:07) [1]

Спасибо....
в этой связке возможно и наличие условий типа where ......?


ЮЮ   (2006-10-06 10:07:00) [13]

INSERT INTO Table1(A, B)
 SELECT A, B FROM MainTable

INSERT INTO Table2(A, C, D)
 SELECT A, C, D FROM MainTable

Если связь 1 ко многим и  SELECT A, B FROM MainTable возвращает дубли, то
INSERT INTO Table1(A, B)
 SELECT DISTINCT A, B FROM MainTable


Наверх

Титульная страница Поиск, карта сайта Написать письмо