powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите разобраться с pivot ?
16 сообщений из 16, страница 1 из 1
помогите разобраться с pivot ?
    #39558143
Фотография belu4ano-kg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть данное условие и сюда нужно добавить pivot ? как можно сделать ?

select Production.Product.name, Production.ProductInventory.Quantity
from Production.Product, Production.ProductInventory
where Production.Product.name like 'Sport-100 Helmet, Blue%' or
Production.Product.name like 'AWC Logo Cap%' or Production.Product.name like 'Water Bottle - 30 oz.%'
intersect
select Production.Product.name, Production.ProductInventory.Quantity
from Production.Product, Production.ProductInventory
where Production.Product.ProductID=Production.ProductInventory.ProductID
order by Production.Product.name
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39558165
iiyama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри немного офф,
Как это развидеть?!

по теме Pivot
join
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39558173
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39558182
Фотография belu4ano-kg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iiyama,
результат выходит таким образом,
а нужно чтобы выходило столбиком.
не могу разобраться, куда добавить pivot
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39558195
Фотография belu4ano-kg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cammomile,

спасибо
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39558310
Andy_OLAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iiyamaсорри немного офф,
Как это развидеть?!

Он еще научится...И перестанет использовать intersect. Всему свое время.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
select
	t1.name -- наименование номенклатуры
	,t2.Quantity -- остаток в штуках
from Production.Product t1 -- таблица номенклатуры
inner join Production.ProductInventory t2 -- таблица текущих остатков
on t1.ProductID=t2.ProductID
where
( -- условие отбора по номенклатуре
t1.name like 'Sport-100 Helmet, Blue%'
or t1.name like 'AWC Logo Cap%'
or t1.name like 'Water Bottle - 30 oz.%'
)
intersect -- он возвращает все совпадающие варианты
-- зачем вторая часть - вообще непонятно
-- мы в первой уже все получили
-- только не отсортировали, а во второй отсортировали
select
	t1.name -- наименование номенклатуры
	,t2.Quantity -- остаток в штуках
from Production.Product t1 -- таблица номенклатуры
inner join Production.ProductInventory t2 -- таблица текущих остатков
on t1.ProductID=t2.ProductID
order by t1.name -- а теперь сортируем по наименованию
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39558716
Фотография belu4ano-kg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andy_OLAP,
огромнейшее спасибо
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39559858
Фотография belu4ano-kg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите, где неправильно написала ?
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39559861
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
belu4ano-kg,

ну IN это нифига не LIKE
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39559884
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что [] означают, что внутри однозначное имя объекта. В твоем случае это [Поле %], но поскольку во входном датасете у тебя такого поля нет, то и пивот ничего не считает.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
DECLARE @Production TABLE (pname varchar(20), Cnt int)
insert into @Production SELECT 'Apples Granny', 4
insert into @Production SELECT 'Apples Gala', 2
insert into @Production SELECT 'Oranges', 10 

 /*В квадратных скобках конкретные названия номенклатуры, которые для пивота будут полями*/
SELECT * FROM @Production  PIVOT   (SUM(CNT)  FOR pname in ([Apples Granny], [Apples Gala])) PVT

/*если ты хочешь аггрегацию подтипа, то надо так*/

 
SELECT * 
  FROM ( 
  SELECT GroupName = CASE WHEN pname like 'Appl%' THEN 'APPLES'
                          WHEN pname like 'Ora%' THEN 'ORANGES'
                     END 
  ,       Cnt
  FROM @Production
  ) PvtSource 
 PIVOT   (SUM(CNT)  FOR GroupName in ([APPLES], [ORANGES])) PVT
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39559888
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
belu4ano-kgподскажите, где неправильно написала ?
У вас все неправильно. Начните с уважительного обращения к представителям форума - представления текста запросов в текстовом виде, обернутом в теги.
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39559891
Руслан Дамирович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CammomileДело в том, что [] означают, что внутри однозначное имя объекта. В твоем случае это [Поле %], но поскольку во входном датасете у тебя такого поля нет, то и пивот ничего не считает.
Это только 1 из 2 причин, почему ее код не работает.
Так что ей твой абстрактный совет сейчас, как мертвому припарка.
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39559951
Фотография belu4ano-kg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cammomile,

спасибо
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39563439
Фотография belu4ano-kg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cammomile,

если такое решение, где не нужно перечислять в pivote всё по отдельности
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39563470
Cammomile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял утверждение это или вопрос. Если вопрос, то готового универсального решения нет.

Надо будет динамически формировать строку запроса, начитать FOR FieldName IN ...

И потом exec(@sql)
...
Рейтинг: 0 / 0
помогите разобраться с pivot ?
    #39563900
iii2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andy_OLAPiiyamaсорри немного офф,
Как это развидеть?!

Он еще научится...И перестанет использовать intersect. Всему свое время.

А в чем ужас intersect?
Конечно, реже чем except бывает нужен, но всё же.
Например, быстро сравнить 2 выборки со 100500 полями, когда exists замучаешься писать, особенно с учетом того, что в половине NULL.
... интересно просто...
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите разобраться с pivot ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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