Текущий архив: 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.46 MB
Время: 0.009 c