Конференция "Начинающим" » SQL-запрос. Подскажите пожалуйста. [D6, dBase, FoxPro]
 
  • Чипырик © (16.05.09 16:43) [0]
    Доброго времени суток!
    У меня возникла проблема при составлении SQL-запроса.
    Есть Таблица1.db с полями Название, Страна, Класс, Статус
    "Название" - ключевое поле...
    Нужно посчитать и вывести в DBGrid отфильтрованные по стране значения с группировкой по классу и по Статусу.
    И подсчитать кол-во отфильтрованных классов(неповторяющихся) и статусов (неповторяющихся)

    Для примера:
    Название      Страна        Класс     Статус
    --------------------------------------------
    Кор0            Страна1       Класс1   Статус2
    Кор1            Страна2       Класс4   Статус2
    Кор2            Страна1       Класс4   Статус3
    Кор3            Страна3       Класс2   Статус2
    Кор4            Страна4       Класс3   Статус2
    Кор5            Страна2       Класс3   Статус1
    Кор6            Страна2       Класс3   Статус1
    Кор7            Страна3       Класс4   Статус2
    Кор8            Страна4       Класс5   Статус3
    Кор9            Страна2       Класс1   Статус2
    Кор10          Страна2       Класс5   Статус4
    Кор11          Страна2       Класс4   Статус2

    Условие запроса: Вывести все строки отфильтрованные по полю "Страна" = Страна2. Сгруппировать по Классу,Статусу и вывести сумму по статусу...

    Отфильтрованные записи
    Класс4   Статус2
    Класс3   Статус1
    Класс3   Статус1
    Класс5   Статус4
    Класс4   Статус2
    Класс1   Статус2

    Результат д.б. такой
    Класс     Статус     Сумм
    ----------------------------
    Класс4   Статус2        2
    Класс3   Статус1        2
    Класс5   Статус4        1
    Класс1   Статус2        1

    Вот что я пытался написать, но чего-то постоянно ругается на ORDER BY

    SELECT Class, Status, COUNT(Status) FROM Таблица1
    WHERE Strana = "Страна2"
    GROUP BY Class, Status
    ORDER BY Class, Status

    Язык SQL стал осваивать буквально 3 дня назад. Может быть я где-то операторы попутал?

    Подскажите, пожалуйста, чего я делаю не так?
  • Чипырик © (16.05.09 16:45) [1]
    т.е. ругается на GROUP BY
  • makz (16.05.09 18:43) [2]
    "class" и "status" - неудачный выбор имен для полей.
  • turbouser © (16.05.09 19:10) [3]

    > Чипырик ©   (16.05.09 16:45) [1]
    >
    > т.е. ругается на GROUP BY

    Как ругается? Неужели таким матом, что правила форума не позволяют привести здесь текст сего ругательства?
  • Чипырик © (16.05.09 19:37) [4]
    Ругается не матом, но по английки...
    Вот что пишет.

    Invalid use of keyword
    Token: COUNT(Status)
    Line Number: 1

  • turbouser © (16.05.09 19:51) [5]

    > Чипырик ©   (16.05.09 19:37) [4]

    SELECT Class, Status, COUNT(*) FROM Таблица1

  • Игорь Шевченко © (16.05.09 19:55) [6]

    > Ругается не матом, но по английки...


    непорядок
  • Совесть ДМ © (16.05.09 20:06) [7]
    сначала удовлетворить [2] потом будем посмотреть
  • AndreyV © (16.05.09 21:56) [8]
    Двойные кавычки
 
Конференция "Начинающим" » SQL-запрос. Подскажите пожалуйста. [D6, dBase, FoxPro]
Есть новые Нет новых   [134477   +39][b:0][p:0.001]