Главная страница
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.021 c
3-6313
gonta
2003-03-16 22:36
2003.04.03
Мастера помогите с Fast Report.


3-6389
ava
2003-03-15 13:14
2003.04.03
Формат данных


1-6533
dm37
2003-03-21 09:52
2003.04.03
Вызов процедуры, имя которой содержится в переменной


7-6825
coder-lamer
2003-02-10 01:02
2003.04.03
DVD Writer


4-6856
Егорычев М
2003-02-04 14:12
2003.04.03
Как достать Bitmap из ресурса DLL