Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2010, 16:57   #1
Rekky
Форумчанин
 
Аватар для Rekky
 
Регистрация: 14.01.2009
Сообщений: 312
По умолчанию Сравнение данных одной таблицы

Товарищи, здравствуйте!
Есть табличка. структура которой: id, contract_id, summa
id- уникально
contract_id - ссылка на другую таблицу
summa - думаю понятно

Необходимо сверить summa каждого одинакого contract_id, если одинаковые summы, то выдать, например 'B', если разные, то 'N'.

Например таблица с такими данными:
1 1 230
2 1 230
3 2 100
4 2 450

Получается итоговый запрос должен вывести две строки:
B
N
Никому не поставить нас на колени! Мы лежали и будем лежать!
Rekky вне форума Ответить с цитированием
Старый 07.05.2010, 17:30   #2
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

как-то так (логику подправил на Y/N)
Код:
select
  contract_id,
  case 
    when count(distinct summa) = 1 then 'Y'
    when count(distinct summa) > 1 then 'N'
  end equal  
from t
group by contract_id
soleil@mmc вне форума Ответить с цитированием
Старый 08.05.2010, 07:51   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

soleil@mmc, отлично! Не знаю, рабочий ли это пример (я просто такого никогда не видел). Но верю Вам, что рабочий!

Rekky, только в том случае, если, по какой-то причине код от soleil@mmc не подойдёт, предлагаю такой вариант:
Код:
select
  contract_id,
  'Верно' as IsCorrect
from t
group by contract_id, summa
having count(*) > 1
union all
select
  contract_id,
  'Неверно' as IsCorrect
from t
group by contract_id, summa
having count(*) = 1
а вообще, мне кажется, что задача совсем в другом...
Rekky, скажите, если есть такие данные,
что нужно выдать для контракта с номером 1 ?!
1 1 230
3 2 100
4 2 450
2 1 999
2 1 230
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.05.2010, 12:34   #4
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

вариант 100% рабочий
если что-то на скорую руку, то так и пишу что нужно проверить/доработать и т.п.
soleil@mmc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перенос данных из одной таблицы в другую в Excel Vindima Помощь студентам 2 11.04.2010 19:54
авт. перенос данных из нескольких столбцов одной таблицы в один столбец другой таблицы A_ALL Microsoft Office Access 7 24.08.2009 21:13
Копирование данных из одной таблицы Paradox в другую Zuzya БД в Delphi 3 16.05.2009 19:11
Передача данных из одной таблицы в другую, при выборе одной ячейки MickMick Microsoft Office Excel 6 06.10.2008 13:57
Копирование данных из одной таблицы в другую! фЁдОр БД в Delphi 18 06.01.2008 19:27