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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [MSSQL2000]несколько полей в одну запись 
:(
    Опции темы
gelo86
Дата 31.7.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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




Здраствуйте. Дапустим у меня такая таблица:

Код

id |  type | value | date
1  |   'a'   |   5     | 2008-07-07
1  |   'b'   |   3     | 2008-07-07
1  |   'c'   |   1     | 2008-07-07
2  |   'a'   |   9     | 2008-07-07
2  |   'b'   |   8     | 2008-07-07
2  |   'c'   |   7     | 2008-07-07


Столбец type может имет толко три значения: 'a', 'b', 'c'.
Мне нада палучит резултат похожий на етот:

Код

id  |    a   |    b   |   c   |    date
1  |    5   |    3   |   1   | 2008-07-07
2  |    9   |    8   |   7   | 2008-07-07


Исползую MS SQL Server 2000, как будет вигледет такой селект? Заранеие спасибо.
PM MAIL   Вверх
skyboy
Дата 31.7.2008, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



структура у тебя стремная. 
если дата должна быть одинаковая - почему не выделить атрибуты type и value  в отдельную таблицу?
если дата должна быть одинаковая - почему ты об этом ни слова не сказал?
если дата должна быть одинаковая, то записи со значением type = 'a', 'b' и 'c' - ровно в количестве одной штуки? или их может быть произвольное количество?
если дата может  быть не одинаковая, то по каким признакам сводить три записи в одну?
короче, ничего из твоего сообщения непонятно. как минимум, 15 возможных вариантов запроса(связывать по date, по id, или по обоим полям; для полей с одинаковым type значение value суммируется, выбирется минимальное или максимальное значение; если связывается только по одному из полей(id или date), то из второго поля берется минимальное или максимальное значение). 

PM MAIL   Вверх
gelo86
Дата 31.7.2008, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Старый проект над котором меня попросили поработат, и мне некуда деватся от таких структур.

Связивается по id и date. Всетда имеется три значения 'a', 'b', c'
PM MAIL   Вверх
skyboy
Дата 31.7.2008, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



Цитата(skyboy @  31.7.2008,  14:48 Найти цитируемый пост)
то записи со значением type = 'a', 'b' и 'c' - ровно в количестве одной штуки? или их может быть произвольное количество?


Добавлено через 1 минуту и 28 секунд
Цитата(gelo86 @  31.7.2008,  15:14 Найти цитируемый пост)
Старый проект над котором меня попросили поработат, и мне некуда деватся от таких структур.

потрясающе. делаешь какую угодно структуру и создаешь view в нужном количестве. чтоб и данные хранились по-нормальному, что позволит обрабатывать без изврата, и чтоб старый функционал переделывать с нуля не пришлось.
насколько мне известно в 2000 версии представления есть  smile  
PM MAIL   Вверх
gelo86
Дата 31.7.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



записи со значением type = 'a', 'b' и 'c' - ровно в количестве одной штуки
PM MAIL   Вверх
skyboy
Дата 31.7.2008, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

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



Цитата(gelo86 @  31.7.2008,  15:14 Найти цитируемый пост)
Всетда имеется три значения 'a', 'b', c' 

минимум или ровно?

Добавлено через 2 минуты и 59 секунд
ладно. не дожидаясь ответа.
положим, что ровно три разных значение(a, b и с)
тогда запрос таков:
Код

SELECT "t1"."id","t1"."value" as "a","t2"."value" as "b", "t3"."value" as "c", "t1"."date"
FROM "table" as "t1"
INNER JOIN "table" as "t2"
ON "t2"."id" = "t1"."id" AND "t2"."date" = "t1"."date"
INNER JOIN "table" as "t3"
ON "t3"."id" = "t1"."id" AND "t3"."date" = "t1"."date"
WHERE "t1"."type" = 'a' AND "t2"."type" = 'b' AND "t3"."type" = 'c'


Добавлено через 4 минуты и 15 секунд
Цитата(skyboy @  31.7.2008,  15:22 Найти цитируемый пост)
ладно. не дожидаясь ответа.

написано до того, как прочитал предідущее сообщение gelo86
PM MAIL   Вверх
gelo86
Дата 31.7.2008, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


 




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


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

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