Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите составить запрос!?!?!? Если конечно его вообще можно составить 
:(
    Опции темы
rlexxr
Дата 24.4.2008, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 24.4.2008

Репутация: нет
Всего: нет



Есть таблица:

Студенты
--------------
код
фио
курс
группа
стипендия
месяц

Пример данных:

|----------------------------------------------------------------------------------------------------------------------------------------------|
|код строки|    код студента|    фио                |   курс    |      группа    |           стипендия      |               месяц      |
|--------------|---------------------|---------------------|-----------|-----------------|---------------------------|-------------------------|
|   1             |   10                   |    Иванов И.И.   |   1         |      1             |            600                |             сентябрь   |
|   2             |   20                   |    Петров П.П.   |   2         |      3             |            350                |             сентябрь   |
|   3             |   10                   |    Иванов И.И.   |   1         |      1             |            610                |             октябрь     |
|   4             |   20                   |    Петров П.П.   |   2         |      3             |            360                |             октябрь     |
|   5             |   10                   |    Иванов И.И.   |   1         |      1             |            620                |             ноябрь       |
|   6             |   20                   |    Петров П.П.   |   2         |      3             |            370                |             ноябрь       |
|-----------------------------------------------------------------------------------------------------------------------------------------------|


Надо чтобы вывод запроса был такой:

----------------------------------------------------------------------------------------------------------------------------------------------------------------
|    код студента|    фио                |   курс    |      группа    | стипендия-сентябрь  | стипендия-октябрь  | стипендия-ноябрь  |
|--------------------|----------------------|-----------|-----------------|-----------------------------|---------------------------|--------------------------|
|   10                  | Иванов И.И.       |    1        |          1         |              600                |          610                  |          620                 |
|   20                  | Петров П.П.       |    2        |          3         |              350                |          360                  |          370                 |
----------------------------------------------------------------------------------------------------------------------------------------------------------------


курс, группа - передаются в виде параметров.

Help me, please! ! !
PM MAIL   Вверх
Akina
Дата 24.4.2008, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Если количество колонок "стипендия" фиксировано (12), и они выводятся всегда - то какие проблемы? А если нет - смотрите, поддерживает ли используемый диалект PIVOT QUERY.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
rlexxr
Дата 24.4.2008, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 24.4.2008

Репутация: нет
Всего: нет



Цитата

Если количество колонок "стипендия" фиксировано (12), и они выводятся всегда - то какие проблемы? А если нет - смотрите, поддерживает ли используемый диалект PIVOT QUERY.

Akina, количество колонок фиксировано, но не 12, а 7 для 1 семестра и 5 для второго. Вы могли бы написать мне пример кода для данного случая (для 3-х месяцев)? Я был бы Вам очень благодарен!

Это сообщение отредактировал(а) rlexxr - 24.4.2008, 16:23
PM MAIL   Вверх
Akina
Дата 24.4.2008, 17:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(rlexxr @  24.4.2008,  17:21 Найти цитируемый пост)
7 для 1 семестра и 5 для второго

Сложил. Получил-таки 12. Долго думал...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
rlexxr
Дата 25.4.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 24.4.2008

Репутация: нет
Всего: нет



Цитата

Сложил. Получил-таки 12. Долго думал...

Это-то понятно что их 12. "Как составить запрос?" - вот мой вопрос, на который я внятного ответа не получил. Помогите кто-нибудь пожалуйста! Буду очень признателен и благодарен! Кстати "PIVOT" не поддерживается.

Это сообщение отредактировал(а) rlexxr - 25.4.2008, 15:44
PM MAIL   Вверх
Magnifico
Дата 25.4.2008, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 4
Всего: 17



Код

declare @Студенты table
(
id int identity(1,1),
код int,
фио nvarchar(50),
курс int,
группа  int,
стипендия int,
месяц nvarchar(50)
)
-------------------------------------------------
insert @Студенты
select 10 ,'Иванов И.И.',1,1,600,'сентябрь'
union all
select 20 ,'Петров П.П.',2,3,350,'сентябрь'
union all
select 10 ,'Иванов И.И.',1,1,610,'октябрь'
union all
select 20 ,'Петров П.П.',2,3,360,'октябрь'
union all
select 10 ,'Иванов И.И.',1,1,620,'ноябрь'
union all
select 20 ,'Петров П.П.',2,3,370,'ноябрь'
--------------------------------------------------
select код as [код студента],фио,курс, группа ,
(select top 1 стипендия from @Студенты t2 where  t2.код = t1.код and t2.месяц  = 'сентябрь')
as [стипендия-сентябрь],
(select top 1 стипендия from @Студенты t2 where  t2.код = t1.код and t2.месяц  = 'октябрь')
as [стипендия-октябрь],
(select top 1 стипендия from @Студенты t2 where t2.код = t1.код and t2.месяц  = 'ноябрь')
as [стипендия-ноябрь]

from @Студенты t1
group by код ,фио,курс, группа 



--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
rlexxr
Дата 12.5.2008, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 24.4.2008

Репутация: нет
Всего: нет



спасибочки, примерно так и сделал, только чить по другому - через клоны 1 таблицы
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0846 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.