Форум: "Базы";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
ВнизУважаемые мастера, подскажите как правильно выполнить Найти похожие ветки
← →
svt (2006-10-06 09:49) [0]следующий запрос на sql. есть одна большая таблица из нее надо вытянуть в 2-3 таблице с учетом следующего условия:
1. Одна большая таблица (MainTable):
|| A || B || c || D ||
2. Из не необходимо создать две таблици
первая таблица (Table1)
|| A || B ||
и вторая таблица (Table2)
|| A || C || D ||
Заранее очн благодарен
← →
ЮЮ © (2006-10-06 10:07) [1]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
← →
svt (2006-10-06 10:12) [2]
> ЮЮ © (06.10.06 10:07) [1]
Спасибо....
в этой связке возможно и наличие условий типа where ......?
← →
ЮЮ © (2006-10-06 10:20) [3]не в связке, а в части 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:37) [4]
> (A NOT IN (SELECT A FROM Table1))
я не понял что значит ->А<- в запросе?
Подскажи пожалуйста. Есть таблица (А) в (предположим из одного столбца) в которой должны содержаться числовые значения двух видов (1- длина числа 10 символов и - 8 символов ). Так же есть еще таблица-исходник(В) в которой содержаться числа с различной длиной. Вот. Необходимо перегнать из таблицы (В) в таблицу (А) значения так, чтобы выполнялось условия:
если length(значение)=10 то так и оставляем
если length(значение)=8 то так и оставляем
если length(значение)<8 то добавляем нули в переди до length(значение)=8
Подскажи как это реализовать в sql
← →
k2 © (2006-10-06 10:46) [5]svt (06.10.06 10:37) [4]
в справке по mssql прочитать, што за типы данных number и varchar
и подумать как можно к числовому значению дописать впереди нули и што получится в результате
затем создать таблицы с нужными типами полей
затем написать выборку, если не получается штото конкретное, то ещё раз обратиться за помощью
вообще приложить минимум какихто усилий
← →
ЮЮ © (2006-10-06 10:46) [6]А что делать, если 9? :)
SELECT
Case
when Len(Field) < 8 then
RIGHT("00000000" + Field, 8)
else
Field
end CorectedField
FROM B
← →
k2 © (2006-10-06 10:48) [7]ЮЮ © (06.10.06 10:46) [6]
мне не жалко, но помоему вы его балуете :)
с уважением, k2
← →
Desdechado © (2006-10-06 10:52) [8]> я не понял что значит ->А<- в запросе?
то же, что и в твоем первом посте - имя поля
← →
svt (2006-10-06 10:54) [9]
> вы его балуете :)
дело не в лени и в не не желании чего-то самому делать.... вопросы, которые я задавал предназначены для того, что бы узнать в каком направлении искать дальше.... согласитесь, что это элементарно..... а в жизни все намного сложнее....
по поводу справки... так я ее уже по данному вопрсу осваеваю...
спасибо за то что переживаете о моем самообразовании :)
← →
k2 © (2006-10-06 10:57) [10]svt (06.10.06 10:54) [9]
по вашим вопросам пока заметно только штобы вам сделали
если это настолько элементарно, то об чем речь? и это не жизнь, это всего лишь sql
в любом случае на здоровье :)
← →
svt (2006-10-06 11:05) [11]
> и это не жизнь, это всего лишь sql
если в жизни один раз не правильно выразишься в ответственный момент, то может настать фатальная ошибка и все .... даже пошаговый дебугер не поможет.... разве аналогии нет?:)
← →
k2 © (2006-10-06 11:09) [12]svt (06.10.06 11:05) [11]
неа, тестировать тщательнее надо, ну впрочем это офтоп, не буду больше отвлекать от изучения справки
← →
svt (2006-10-06 11:22) [13]ок
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c