Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.03;
Скачать: CL | DM;

Вниз

Помогите с группировкой   Найти похожие ветки 

 
dim111   (2003-03-13 17:12) [0]

есть табличка типа


Тип Наименование
---------------------
карамель Ирис
карамель Кис-кис
карамель КваКва
вафли Особая
вафли Новая
вафли Вкуснятина
вафли Пышка


Вопрос: Можно ли не пользуясь UDF и т.п. получить её в таком виде:


Тип Кол-во Список наименований
---------------------------------------------
карамель 3 Ирис,Кис-кис,КваКва
вафли 4 Особая,Новая,Вкуснятина,Пышка


?

Спасибо.


 
Anatoly Podgoretsky ©   (2003-03-13 17:19) [1]

Это не групировка, а кросс таблица


 
dim111   (2003-03-13 17:22) [2]

>Anatoly Podgoretsky © (13.03.03 17:19)

Есть простой способ для такого преобразования?


 
DarkGreen ©   (2003-03-14 07:16) [3]

Не знаю, что в MSSQL подразумевают под UDF, если тоже самое что и в Interbase, то решить можно с помошью SP, примерно вот так:


CREATE PROCEDURE NEW_PROCEDURE
RETURNS (
NEW_PARAM VARCHAR(47) CHARACTER SET WIN1251,
NEW_PARAM1 VARCHAR(89) CHARACTER SET WIN1251,
NEW_PARAM2 INTEGER)
AS
DECLARE VARIABLE NEW_VAR VARCHAR(20) CHARACTER SET WIN1251;
DECLARE VARIABLE NEW_VAR1 VARCHAR(20) CHARACTER SET WIN1251;
DECLARE VARIABLE NEW_VAR2 VARCHAR(50) CHARACTER SET WIN1251;
begin
/* Procedure Text */
NEW_VAR2 = "";
for
select T.Type1, Count(*)
from NEW_TABLE T
group by Type1
into :New_var, :New_param2
do
begin
for
select cast(Name as varchar(20) character set win1251)
from NEW_TABLE T1
where T1.Type1 = :New_Var
into :New_Var1
do
New_var2 = New_var2 || New_var1;
New_param1 = New_var2;
New_param = New_Var;
suspend;
end
end



 
Anatoly Podgoretsky ©   (2003-03-14 09:41) [4]

Anatoly Podgoretsky © (13.03.03 17:19)
Простых путей нет, но возможно это не относится к MS SQL, я не в силен в нем, но поробуй поискать в хелпе по ключевому слову Pivot Table - это так они называют кросс таблицы, что то должно быть.


 
SergSuper   (2003-03-14 10:26) [5]


> dim111

в MS SQL - нельзя


 
stone ©   (2003-03-14 10:42) [6]


> в MS SQL - нельзя

Почему? Теоретически можно
1. Создать функцию, которая будет получать "наименование" по "типу", делать выборку значений "наименование" , проходить курсором по выборке, добавляя значения в @RESULT

после этого запрос будет выглядеть примерно таким образом

select тип, count(тип), MyFunc(тип)
from таблица
qroup by тип, MyFunc(тип)

Вопрос в том насколько быстро это будет работать


 
Fiend ©   (2003-03-14 11:33) [7]

То dim111:
а чем собсно напрягает ЮДФ или ХП?

Этот вопрос можно легко решить с помощью и того и другого одновременно или по раздельности



Страницы: 1 вся ветка

Текущий архив: 2003.04.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
1-6441
lexa
2003-03-23 22:01
2003.04.03
Как создать ссылку в тексте


14-6686
NetBreaker666
2003-03-17 15:31
2003.04.03
Здесь собрался еще mpeg4 encoder писать...


7-6823
vitnt
2003-02-11 08:49
2003.04.03
Как создать программу - емулятор сом портов?


8-6626
Zirus
2002-12-26 13:22
2003.04.03
Звук


14-6795
_Nicola_
2003-03-17 16:49
2003.04.03
Супер!! Жириновский и ...