Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как автоматически добавлять столбец в таблицу  [new]
Запчасти008
Guest
Приходят файлы со списком запчастей на склад. Руководству нужно видеть отчет в виде, который приведу ниже.
CREATE TABLE #t(avto varchar(10),invnt varchar(10) )
INSERT INTO #t
select 'Шкода',	'Руль'
union all select 'БМВ','Коробка'
union all select 'Ауди','Двигатель'


CREATE TABLE #t1(avto varchar(10),invnt varchar(10) )
INSERT INTO #t1
select 'Шкода',	'Магнитола'
union all select 'БМВ','Дверь'
union all select 'Ауди','Сидение'

CREATE TABLE #t2(avto varchar(10),invnt varchar(10) )
INSERT INTO #t2
select 'Шкода',	'Коробка'
union all select 'Ауди','Стекло'


SELECT a.avto,a.invnt as [1],isnull(b.invnt,'') as [2],isnull(c.invnt,'') as [3]
FROM
(
select avto,invnt
from #t
) as a
LEFT JOIN
(
select avto,invnt
from #t1
) as b on a.avto=b.avto
LEFT JOIN
(
select avto,invnt
from #t2
) as c on a.avto=c.avto

drop table #t
drop table #t1
drop table #t2


Есть план допустим 20 приходов. Эту цифру я знаю заранее. ну или могу вычислить.

И мне постоянно приходится добавлять LEFT JOIN нового прихода и столбец новой запчасти. Бывает не на все машины что-то приходит, там пишется NULL, который я заменяю на пустое значение.

Можно ли процесс зациклить? Я примерно понимаю как это должно выглядеть, вот реализовать не могу.

Хочу первый приход принять за постоянную. потом каждый следующий в цикл, пока не 20. пришел приход записал в таблицу, новый приход приписал еще в таблицу. Незнаю как сделать, чтобы в SELECT добавлялся новый столбец автоматом.
13 ноя 14, 17:24    [16841900]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматически добавлять столбец в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104760
Запчасти008
Можно ли процесс зациклить? Я примерно понимаю как это должно выглядеть, вот реализовать не могу.

Поставь начальству Excel. И в нем сделай/настрой Pivot к простому запросу со всеми машинами и запчастями
13 ноя 14, 17:27    [16841919]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматически добавлять столбец в таблицу  [new]
minya13_85
Member

Откуда: Москва
Сообщений: 598
Glory, начальство ничего не хочет. А у SQL есть такая возможность?
13 ноя 14, 17:28    [16841928]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматически добавлять столбец в таблицу  [new]
Glory
Member

Откуда:
Сообщений: 104760
minya13_85
начальство ничего не хочет.

Интерсено, а как оно собралось тогда "видеть отчет" ?
13 ноя 14, 17:29    [16841935]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматически добавлять столбец в таблицу  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Нет, никаких циклов быть не должно, продумайте групповые операции - как получить нужный результат за один проход.

Соберите все данные в одну таблицу и выполните запрос с PIVOT, он повернет столбцы деталей в строки.
13 ноя 14, 17:39    [16841983]     Ответить | Цитировать Сообщить модератору
 Re: Как автоматически добавлять столбец в таблицу  [new]
Ang3L
Guest
Нужно делать INSERT не во временные таблицы, а в 1, уже заранее созданную, таблицу. И делать SELECT из этой таблицы. Если нужно выводить данные за день, то можно либо каждый раз делать TRUNCATE всей таблицы (что не очень хорошо, т.к. данные постоянно теряются) или при добавлении добавить столбец даты добавления и затем делать выборку по этой дате.

Никакие JOIN тогда не будут нужны.
14 ноя 14, 09:59    [16844236]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить