powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите !!
11 сообщений из 11, страница 1 из 1
помогите !!
    #32045873
Tosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица вида :
дата1 кол. товар1
дата1 кол. товар2
.
.
дата1 кол. товар40
.
.
датаN кол. товар1
датаN кол. товар2
.
.
датаN кол. товар40

надо перекинуть это в таблицу где столбцами будут товары в сторах соответствующие количества за каждую дату. Примерно так:

дата товар1.............товар 40
------------------------------
дата1 кол................кол.
дата2 кол.................кол.


Запуталась напрочь :( Помогите!
...
Рейтинг: 0 / 0
помогите !!
    #32045876
Alexandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Количество товаров всегда 40? Или оно динамическое?
...
Рейтинг: 0 / 0
помогите !!
    #32045882
Alexandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот можно попробовать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
@iD_Tov int,
@date datetime

set @date=начальная_дата
while @date<=конечная_дата
begin
	WHILE @iD_Tov<= 40 
	begin
		exec 'insert into новая_таблица (дата,поле_товар' + cast(@iD_Tov as varchar( 2 )) +') select
		дата,товар  where товар like ''товар' + cast(@iD_Tov as varchar( 2 )) +''' and дата=' + @date
	end
set @date=DATEADD ( day,  1 , @date ) 
end

...
Рейтинг: 0 / 0
помогите !!
    #32045883
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.sqlteam.com/item.asp?ItemID=2955
...
Рейтинг: 0 / 0
помогите !!
    #32045943
Tosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexandr
количество товаров меняется но медленно. Проблема в том что выглядит это не как товар1, товар2 а "название первого товара", "название второго"
мло того, там и дата в текстовом виде.

Makc
Это круто. Жаль только что мой английский не дает полностью оценить :(
Мне б чего попроще. с примерами...
...
Рейтинг: 0 / 0
помогите !!
    #32045949
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Tosha:
Да на самом деле все просто...
Вам нужен перекрестный запрос (в терминах Access'a),
т.е. в колонках - данные из таблицы, в столбцах - некие сводные данные...
Посмотрите help по Access'у поймете о чем речь...
В SQL сервере не все так просто, выход один - составлять запрос динамически или делать все через временные таблицы и курсоры, предложеный мной вариант позволяет Вам это сделать с минимальными трудозатратами...

Вызываете хранимую процедуру, параметры:
@select varchar(8000) - собственно запрос
@sumfunc varchar(100) - агрегатная функция
@pivot varchar(100), - поле по которому будут выб-ря pivot значения
@table varchar(100) - таблица откуда выб-ря pivot'ы

В Вашем случае:
(структура я полагаю такая:
товары - items
id
name
движения по товарам - sales
id
date
count
item_id
)
@select='select date from sales inner join items on
sales.item_id=items.id group by date'
@sumfunc='sum(count)'
@pivot='name'
@table='sales'

Желаею успехов!!!
ЗЫ. А Вам сколько лет?
...
Рейтинг: 0 / 0
помогите !!
    #32046027
Alexandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Tosha
Ну как справилась? Если проблеммы - пришли скрипт таблиц - помогу.
...
Рейтинг: 0 / 0
помогите !!
    #32046056
Фотография Nickolay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуй пойти в BOL и почитать про pivot table. Мне кажется это как раз то, о чем ты спрашивал (и с примерами :))
...
Рейтинг: 0 / 0
помогите !!
    #32046072
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Nickolay:
BOL дает определение Pivot table, но не дает способа построения запросов...
Я думаю ты согласишся, что примеры построения запросов, приведенные в BOL не более чем демонстрация определения cross-tab report и использовать их в своих программах не получится...

Раньше я решал это так:
выбирал по distinct'у значения из pivot table в курсор, прокручивал его, формируя запрос и исполнял его...
На форуме наткнулся на ссылку
http://www.sqlteam.com/item.asp?ItemID=2955
Это круто!!!
Удобно, универсально и работает немного быстрее.
Рекомендую!!!
...
Рейтинг: 0 / 0
помогите !!
    #32046274
Tosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Макс,
Спасибо огромное! Все получилось !

Действительно великолепная процедура :))

Спасибо.

ЗЫ. Лет мне много. 10 лет отпахала на ниве защиты от вторжений, а теперь в связи с переменой места работы осваиваю SQL :)
...
Рейтинг: 0 / 0
помогите !!
    #32046276
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Успехов!!!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите !!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]