powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Pivot или что не будь еще? Help
6 сообщений из 6, страница 1 из 1
Pivot или что не будь еще? Help
    #37989649
Regata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем
имеется токая проблема

Items
------
ID : autoinc
Name : nvarchar(50)
...

Stock
-------
ID : autoinc
Date : date
Customer : int
Item : int (look up с таблицы Items)
Amount : int
...

В таблице ITEMS имеется 150 наименований
Хотел сделать такой Pivot

Код: plaintext
1.
2.
3.
4.
5.
Sum(Amount)  |  Customer
-------------|-----------------------------------------
Item         |
             |
             |
На пример
на дату 10-10-2012 выход со склада

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
           | Customer1  | Customer2  | Customer3 
-----------|------------|------------|------------------- …
Item1      |     10     |            |     15
-----------|------------|------------|------------------- …
Item2      |            |     60     |     40
-----------|------------|------------|------------------- …
Item3      |     15     |            |
-----------|------------|------------|------------------- …
Item4      |     25     |            |
-----------|------------|------------|------------------- …
…

Т.е чтоб все 150 наименований были в таблице вне зависимости был выход или нет. а кастюмеры зависимости от даты. А если точнее меняется только количество столбцов. был сегодня выход со склада на этого кастюмера то он появляется в столбце если нет то нет. (примерно как excel т.е заранее подготовлен шаблон и юзер заполняет клетки ). Вроде бы все

Пробовал через Pivot это не решило проблему. Т.е не смог вывести все итемы с таблицы Итемс да и заране не известен кол-во кастюмеров. И код получился страшный стыдно даже поделится

Пока все. Остальное надо подумать как правильнее выразится
...
Рейтинг: 0 / 0
Pivot или что не будь еще? Help
    #37989755
Максим Н
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Regata,

Показывайте код
...
Рейтинг: 0 / 0
Pivot или что не будь еще? Help
    #37989950
Regata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
select
        item,
	[1],
	[2],
	[3],
	[4],
	[5],
	[6],
	[7],
	[8],
	[10],
	[11],
	[12],
	[13],
	[14],
	[15],
	[16],
	[64],
	[179]

from
	stock

PIVOT (
SUM(amount)
for customer
in ([1], [2], [3], [4], [5], [6], [7], [8], [10], [11], [12], [13], [14], [15], [16], [64], [179])
) as pvt

where date = CONVERT(date,GETDATE())
order by item



цифры это айди кастюмеров. как видите пивот выводит только те итемы на которых был выход на на тот день.

таблица ITEMS

IDNAME1ITEM12ITEM23ITEM34ITEM45ITEM56ITEM67ITEM78ITEM89ITEM910ITEM1011ITEM1112ITEM1213ITEM1314ITEM1415ITEM15

таблица STOCK

ID Date Customer Item Amount1 12.09.2012 c1 5 1002 13.09.2012 c2 2 1503 13.09.2012 c2 3 154 13.09.2012 c2 1 405 13.09.2012 c1 12 606 13.09.2012 c1 15 107 14.09.2012 c1 15 1008 14.09.2012 c2 2 509 14.09.2012 c3 6 1810 15.09.2012 c3 4 21

хотел такой PIVOT

C1 C2ITEM1 40ITEM2 150ITEM3 15ITEM4 ITEM5 ITEM6 ITEM7 ITEM8 ITEM9 ITEM10 ITEM11 ITEM12 60 ITEM13 ITEM14 ITEM15 10

а пока получается такой

C1 C2 C3ITEM1 40 ITEM2 150 ITEM3 15 ITEM12 60 ITEM15 10
...
Рейтинг: 0 / 0
Pivot или что не будь еще? Help
    #37989957
Regata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уточнение в данном случае выборка по дате 13-09-2012
...
Рейтинг: 0 / 0
Pivot или что не будь еще? Help
    #37989975
Regata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
решил часть проблемы
мое решение части проблемы
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
select i.name,db.* FROM ITEMS i
left join
(
select
    item,
	[1],
	[2],
	[3],
	[4],
	[5],
	[6],
	[7],
	[8],
	[10],
	[11],
	[12],
	[13],
	[14],
	[15],
	[16],
	[64],
	[179]

from
	stock

PIVOT (
SUM(amount)
for customer
in ([1], [2], [3], [4], [5], [6], [7], [8], [10], [11], [12], [13], [14], [15], [16], [64], [179])
) as pvt

where date = CONVERT(date,GETDATE())
) db on i.id = db.item
ORDER by i.ID



вот теперь решить бы как убрать лишние кастюмеры
...
Рейтинг: 0 / 0
Pivot или что не будь еще? Help
    #37989996
Regata
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОШИБСЯ НЕ РЕШИЛ
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Pivot или что не будь еще? Help
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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