Russian Qt Forum
Ноябрь 22, 2024, 18:20
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Базы данных
>
Вопрос не совсем по куте, т.е. совсем не по куте, но прошу помочь.
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Вопрос не совсем по куте, т.е. совсем не по куте, но прошу помочь. (Прочитано 9498 раз)
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Вопрос не совсем по куте, т.е. совсем не по куте, но прошу помочь.
«
:
Август 26, 2008, 14:07 »
Есть 2 таблицы:
таблица1:
номерКарточки
площадь
таблица2
номерКарточки
фамилия
дата
площадь
Задача вывести в модель:
1.номерКарточки, 1.площадь, 2.площадь
По первой таблице все нормально, а вот во второй с одним номерКарточки может быть сразу несколько записей, из которых нужна только последняя. Вот мой запрос
SELECT 1.номер карточки, 1. площадь,
(SELECT top 1 2.площадь FROM таблица2 2 WHERE 2.номерКарточки=1.номерКарточки ORDER BY 2.дата DESC)
FROM таблица1 1
Он не работает, если с одним номерКарточки в таблице2 связаны несколько записей. 2 дня бьюсь и никак...
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Alex03
Гость
Re: Вопрос не совсем по куте, т.е. совсем не по куте, но прошу помочь.
«
Ответ #1 :
Август 26, 2008, 14:34 »
panter_dsd
Прпробуйте попонятней изъясняться.
Если описываете схему в БД, то не плохо было бы указать также на связи, а также отношения типа один к одному, один ко многим, и т.д.
Хоть SQL и стандартизован, но стандартов этих далеко не 1, а вариантов поддержки в реальных реалицациях СУБД и того больше (далеко не все поддерживают "SELECT top 1 ..."), так что не плохо бы сказать что за БД и её версию.
Числовые алиасы таблиц - "замечательный" стиль, мне теперь интересно какие СУБД их поддерживают.
Цитировать
Он не работает, если с одним номерКарточки в таблице2 связаны несколько записей.
Это можно прочитать так:
Он не работает, если с одним номерКарточки в таблице2 связаны несколько записей в таблице1.
а можно так:
Он не работает, если с одним номерКарточки в таблице1, в таблице2 связаны несколько записей.
И фраза "Он не работает" что означает? Какие тексты ошибок и т.д.?
Ну и на последок ДА, лучше такие вопросы задавать в более профильном форуме (например на sql.ru) чем в форуме по Qt. Впрочем на sql.ru скорее пошлют учить матчасть.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Вопрос не совсем по куте, т.е. совсем не по куте, но прошу помочь.
«
Ответ #2 :
Август 26, 2008, 14:57 »
2 panter_dsd: Если вопрос "совсем не по куте", зачем его постить в раздел по Qt? о_О. На форуме есть и другие разделы:
http://prog.org.ru/forum/board_34_0.html
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Вопрос не совсем по куте, т.е. совсем не по куте, но прошу помочь.
«
Ответ #3 :
Август 26, 2008, 14:58 »
На sql.ru тоже запостил, только молчат пока.
Цитировать
Числовые алиасы таблиц - "замечательный" стиль
Это для примера. Если бы я привел нормальный код, то вообще нихрена бы не поняли.
Цитировать
так что не плохо бы сказать что за БД и её версию
Никакой БД. 2 файла dbf III. Коннекчусь через ODBC, вот строка соединения:
Код:
DRIVER={Microsoft dBase Driver (*.dbf)};FIL={dBase III;};DefaultDir=каталог
Связь только по полю номерКарточки.
Цитировать
Это можно прочитать так:
Он не работает, если с одним номерКарточки в таблице2 связаны несколько записей в таблице1.
а можно так:
Он не работает, если с одним номерКарточки в таблице1, в таблице2 связаны несколько записей.
Он не работает, если с одним номерКарточки в таблице2 связаны несколько записей в таблице2.
Не работает, т.е. говорит, что подзапрос выдает больше одной записи, что запрещено.
Цитата: pastor от Август 26, 2008, 14:57
2 panter_dsd: Если вопрос "совсем не по куте", зачем его постить в раздел по Qt? о_О. На форуме есть и другие разделы:
http://prog.org.ru/forum/board_34_0.html
Упс... Не заметил.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Tonal
Гость
Re: Вопрос не совсем по куте, т.е. совсем не по куте, но прошу помочь.
«
Ответ #4 :
Август 26, 2008, 16:39 »
ODBC над dbf-ом поддерживает довольно ограниченное подмножество SQL-я. Так что вполне может и не работать.
Так что либо реализовать всё вручную, либо перелезть на нормальный сервер.
А почему именно dbf?
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Вопрос не совсем по куте, т.е. совсем не по куте, но прошу помочь.
«
Ответ #5 :
Август 26, 2008, 18:25 »
Цитата: Tonal от Август 26, 2008, 16:39
ODBC над dbf-ом поддерживает довольно ограниченное подмножество SQL-я. Так что вполне может и не работать.
Так что либо реализовать всё вручную, либо перелезть на нормальный сервер.
А почему именно dbf?
Да потому, что СУБД на работе писана на foxpro. Так уже задолбали эти dbf'ки... Вот попробую завтра данные перелить на птицу и там уже сделать выборку.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Вопрос не совсем по куте, т.е. совсем не по куте, но прошу помочь.
«
Ответ #6 :
Август 27, 2008, 10:31 »
Перегнал данные в SQLite, все заработало. Всем спасибо.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...