![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уважаемые мастера, подскажите как правильно выполнить [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