Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 223
от 26.02.2007, 20:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 395, Экспертов: 50
В номере:Вопросов: 1, Ответов: 3


Вопрос № 76722: Уважаемые эксперты, может вопрос покажется глупым, но прошу подсказать вот что: есть таблица в БД, которая обновляется по мере поступления заявок. Таблица обновляется из дбф файла, куда идет выгрузка из 1С. Смысл такой, что из этой таблицы нужно выбр...

Вопрос № 76.722
Уважаемые эксперты, может вопрос покажется глупым, но прошу подсказать вот что: есть таблица в БД, которая обновляется по мере поступления заявок. Таблица обновляется из дбф файла, куда идет выгрузка из 1С. Смысл такой, что из этой таблицы нужно выбрать строки с совпадающими двумя столбцами. Т.е. в этой таблице есть 5 строк с 2-мя одинаковыми столбцами, но остальные столбцы разные, еще 10 строк с 2-мя одинаковыми столбцами (но отличные от последующих 5-ти) и т.д. Вопрос в том, как грамотно организовать выборку конкретных строк (сначала первых 5-ти, потом 10-ти и т.д.) по этим совпадающим столбцам? Условие WHERE avto='наименование' не подходит (каждый раз это разное наименование). Заранее спасибо!
Отправлен: 21.02.2007, 10:59
Вопрос задал: Наталья Владимировна/ NatalyaDen (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Tek
Здравствуйте, Наталья Владимировна/ NatalyaDen!
Select * from table order by column1, column2
и у вас строки с одинаковыми значениями в этих двух столбцах стоят рядом.
А потом рабираете полученную выборку.
Узнать уникальные пары этих столбцов
Select column1, column2, count(*) as cntpair from table group by column1, column2

---------
WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: 10-ый класс)
Ответ отправлен: 21.02.2007, 11:07
Оценка за ответ: 4
Комментарий оценки:
Строки у меня сортируются и группируются нормально. А вот как запрос сделать на выборку строк по одной машине не знаю.

Отвечает: PaVeL_Ekt
Здравствуйте, Наталья Владимировна/ NatalyaDen!

Select * from table t1
inner join
(
select avto, Count(*) as cnt from table
group by avto
) t2 on t1.avto=t2.avto and t2.cnt>2
order by avto

---------
Да поможет Вам F1, да сохранит Вас F2, во имя CTRL, ALT и святого DEL
Ответ отправил: PaVeL_Ekt (статус: Студент)
Ответ отправлен: 21.02.2007, 11:39
Оценка за ответ: 4
Комментарий оценки:
Честно говоря, не совсем поняла алгоритм. Объединяем 2 таблицы? Или объединение в одной? Я попробовала с двумя таблицами, но он ругается но AVTO, причем ругань не понятная.

Отвечает: Архангельский Андрей Германович
Здравствуйте, Наталья Владимировна/ NatalyaDen!

1) НАлицо ошибра в проектировании структуры данных.
2) Для начала нужно пометить строки у которых Col1=Col2Б потом у которых Col2=Col3 и так далее. Для чего используется запрос
Update Table Set RecType=1 where Col1=Col2;
Update Table Set RecType=2 where Col2=Col3;
.........

После чего можно делать выборку из таблицы используя группировку по типу строки
Select * from Table
Group by RecType

с использованием любых where

---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 21.02.2007, 11:55


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.45 beta от 20.02.2007
Яндекс Rambler's Top100

В избранное