Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.04.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
6-6636
ROk
2003-02-11 11:07
2003.04.03
TWebBrowser


14-6689
Ш-К
2003-03-18 20:50
2003.04.03
Синхронизация времени.


3-6368
PONTIY
2003-03-14 12:01
2003.04.03
Как сортировать данные в TRxDBGrid?


1-6466
Vivan
2003-03-24 12:20
2003.04.03
Какой можно воспользоваться функцией


1-6437
Alex-21
2003-03-14 20:14
2003.04.03
Активность окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский