Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно создать SQL-запрос? [D6, Access]


DECL ©   (2003-10-08 00:41:00) 

Уважаемые Мастера!

Кому-то этот вопрос может показаться лёгким, но я долблюсь над одним SQL-запросом уже 2 дня. Суть в следующем:
В Accesse есть данные о ж.д. В них есть поля "Длина км", "Код направления" и поле "Оценка км", которое может принимать значения О(отл), Х(хор), У(удовл) и Н(неуд).
Требуется:
- подсчитать в одном запросе сумму километров с оценками О,Х,У и Н по каждому направлению, т.е. например
! Код напр ! О ! Х ! У ! Н !
! X-Y ! 5,2 ! 2 ! 3,2 ! 4 !
Я делал так:
- делал четыре запроса для выделения каждой оценки км по всем напрвлениям;
- создавал пятый запрос который из этих четырёх выбирает по коду направления сумму О,Х,У и Н км для каждого напраления.

Проблема состоит в том, что если какое-то направление имеет только один вид оценки (например все километр отличные), то в итоговом запросе оно не отображается. Как быть?
Заранее благодарен за ответ...


DECL   (2003-10-08 02:04:00) [1]

Уф.....

После нескольких минут общения с хелпом нашёл то что нужно.
Создал перекрёстный запрос с помощью мастера и всё заработало.

Всем спасибо.


x_ANDREW_x   (2003-10-08 01:32:00) [2]

>>DECL (08.10.03 01:30)
В Аксесе есть ср-во для построения "КУБА" (если мне не наврали) используй его!!!


DECL   (2003-10-08 01:30:00) [3]

>x_ANDREW_x

Ладно, буду ждать...
Всё равно спасибо.


Johnmen   (2003-10-08 01:28:00) [4]

Понятно...
Тогда тебе смотреть в сторону документации по аксесу, ключевое слово Pivot.


x_ANDREW_x   (2003-10-08 01:27:00) [5]

Это кросс-таблица получается! Я по ним как-то задавал вопрос... молчание! Мой совет не трать время, решение само придет!


DECL   (2003-10-08 01:18:00) [6]

Наверное всё-таки я не так задал вопрос..

По Вашим решениям я получаю нужные данные, но только в разных записях, а мне нужно, чтобы все оценки км. были в одной строке.


Johnmen   (2003-10-08 01:14:00) [7]

>x_ANDREW_x (08.10.03 01:04)

Так я же не видел, что ты сказал, когда сам говорил :)))

>DECL

Уже ответили [2] [3].


DECL   (2003-10-08 01:11:00) [8]

Попытаюсь..

Есть такая база данных:
Код направления ! Оценка километра ! Длина километра
A-B O 1
A-B X 1
A-B У 0,3
A-B Н 1
B-C О 0,2

Необходимо привести её к виду:
Код направления ! Отл. км ! Хор км. ! Уд км. ! Неуд км.
А-В 1 1 0,3 1
В-С 0,2 0 0 0

Моё решение:
1) создал четыре запроса вида:
Код направления ! Оценка км ! Длина км.
А-В 0 1
В-С О 0,2

Код направления ! Оценка км ! Длина км.
А-В Х 1

Код направления ! Оценка км ! Длина км.
А-В У 0,3

Код направления ! Оценка км ! Длина км.
А-В Н 1

2) создал пятый запрос, который из четырёх выбирает нужные данные:
Код направления ! Отл. км ! Хор км. ! Уд км. ! Неуд км.
А-В 1 1 0,3 1

Проблема в том, что в итоговом запросе не отображается направление для которого имеются оценки не всех видов(О,Х,У,Н), а только часть.

Надеюсь подробно объяснил?


никто   (2003-10-08 01:09:00) [9]

это неправда! не обещал я ему ничего!!!


Е-Моё имя   (2003-10-08 01:07:00) [10]


> мою проблему никто не решил!

а он тебе обещал что решит?


x_ANDREW_x   (2003-10-08 01:04:00) [11]

>> Johnmen © (08.10.03 00:57)
ОГО! А я что сказал???

>> DECL
не слушай никого!!! Пиши как я сказал!

>> Johnmen © (08.10.03 00:57)
Не обижайся я типа шутю, т.к. мою проблему никто не решил! :))


Johnmen   (2003-10-08 00:57:00) [12]

>Zacho ©

Игорь, куда уж подробнее :)))

>DECL

SELECT "Код направления", "Оценка км", SUM("Длина км")
FROM Table
GROUP BY "Код направления", "Оценка км"

Дальше остается только отбросить то, в чем проблема :)
Но это зависит от того, какие еще поля есть в табл. Приведи их и их сущность...


x_ANDREW_x   (2003-10-08 00:55:00) [13]

>> DECL
В чем проблема???
select sum("Длина км"),"Код направления","Оценка км" from
"данные о ж.д." group by "Код направления","Оценка км"
так пробовал или я что-то упустил???


Zacho   (2003-10-08 00:45:00) [14]

Более подробно опиши задачу.


Наверх

Титульная страница Поиск, карта сайта Написать письмо