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

Вниз

Как правильно создать SQL-запрос?   Найти похожие ветки 

 
DECL   (2003-10-08 00:41) [0]

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

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

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


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

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


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

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


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

>Zacho ©

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

>DECL

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

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


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

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

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

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


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


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

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


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

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


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

Попытаюсь..

Есть такая база данных:
Код направления ! Оценка километра ! Длина километра
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

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

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


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

>x_ANDREW_x (08.10.03 01:04)

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

>DECL

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


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

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

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


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

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


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

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


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

>x_ANDREW_x

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


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

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


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

Уф.....

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

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



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.011 c
7-89609
IGORYOK
2003-08-12 11:46
2003.10.27
У меня есть DLL. Не я её делал и потому не знаю аргументы функций


8-89399
Bill
2003-06-24 17:13
2003.10.27
Изменение вида окна


6-89448
Serega123
2003-09-02 10:28
2003.10.27
Отправка почты ( Mapi )


1-89351
Yuraz
2003-10-16 09:45
2003.10.27
Как отключит скринсавер на время выполнения программы?


3-89182
Max
2003-10-06 12:20
2003.10.27
SQL запрос на добавление





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский