Главная страница
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.02 c
3-6416
Suharew
2003-03-16 21:21
2003.04.03
Как удалить все записи таблицы с помощью SQL запроса


14-6782
Tihas
2003-03-13 02:15
2003.04.03
Люди чистый плагиат http://www.nkfi.ru/


14-6793
Портвейн
2003-03-18 02:56
2003.04.03
жена и ООП


1-6543
Бульбаш
2003-03-21 12:28
2003.04.03
Нужны невидимые кнопки


1-6538
maxfiles
2003-03-20 03:33
2003.04.03
В Windows 2000 не получается сделать активным окно и вытащить ...