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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2015, 13:24   #1
Mansitto
Пользователь
 
Регистрация: 23.03.2015
Сообщений: 11
По умолчанию Сравнение результатов Excel и SQL-запроса

Добрый день. Есть очень большая проблема. У меня есть файл эксель, в нем инф-я о кол-ве людей в цехах(подразделениях), которые используют ПО. В скуле пишу запрос, вывожу и идет различие по 1 или 2 людям. Подскажите, пожалуйста, как сравнить скуль-запрос и экслель файл и вывести людей из sql-таблицы, которых нет в excel-файле.

Вот запрос

select t.description, count(t.description) from users t where description='ОтделПерспектРазв' or description='ПроектОфис' or
description='ОтделКонтр_за_Строит' or description='ОтделГлМеханика' or description='ТехническийОтдел' or
description='ОтделГлЭнергетика' or description='ОтделТаможенОформл' or description='ОтделОтгрузки' or
description='Директор_по_производст ву' or description='ОбщРасхДиректора_по_Пе рсоналу' or description='Руководство(общ расх)'
or description='ЦехКонтрИзмПрибИАвтом' or description='Цех12' or description='Цех11' or description='ОТК'
or description='ОтделТехнНадзора' or description='Цех01' or description='Цех02' or description='Цех03' or
description='ОтделКонтрНадз' or description='ЭкономОтдел' or description='ОтдУпрБПиСистМен' or
description='ПроизводствОтдел' or description='Директор_по_технология м' or description='ОтделПроизвПланировани я'
or description='ОтдОптимМежРемПроб' or description='247' or description='АТ6' or
description='Изомеризация' or description='Гидрокрекинг' or description='Коммерческий_директор'
or description='ОтдЭкономБезоп' or description='ОтделОхраныОкрСреды' or description='ПроектноКонстрОтдел' or description='ОтделПланирКонтролинга '
or description='Комплектация' or t.description='ОТК Инспекторат' or description='ОтделПовышОперацЭффект ' or description='ПервыйЗГД_ТехничДирект ор'
or description='ОтдСопрПроектовПоддерж ания' or description='ОтделРеализПроектов' or description='ОтдСопрПроектРазвития'
or description='УпрПроектовПоддержания ' or description='РасходыГлавТехнолога' or description='ОтделУпрТоплПотерями'
or description='ОтдТекПланирУчетаКапит Вложений' or description='УпрПланирОтчетности' or description='ЭкологичЛаборат' group by description

Вот что выходит


DESCRIPTION COUNT(T.DESCRIPTION)
1 Директор_по_производству 5
2 Комплектация 1
3 ОТК 147
4 ОтдСопрПроектРазвития 7
5 ОтдСопрПроектовПоддержания 3
6 ОтдУпрБПиСистМен 1
7 ОтдЭкономБезоп 1
8 ОтделГлЭнергетика 1
9 ОтделОхраныОкрСреды 1
10 ОтделПланирКонтролинга 1
11 ОтделПовышОперацЭффект 7
12 ОтделПроизвПланирования 8
13 ОтделРеализПроектов 1
14 ОтделТехнНадзора 5
15 ОтделУпрТоплПотерями 4
16 ПервыйЗГД_ТехничДиректор 1
17 ПроектОфис 3
18 ПроизводствОтдел 10
19 РасходыГлавТехнолога 2
20 Руководство(общ расх) 2
21 ТехническийОтдел 15
22 УпрПланирОтчетности 1
23 УпрПроектовПоддержания 1
24 Цех01 41
25 Цех02 44
26 Цех03 65
27 Цех11 3
28 Цех12 5
29 ЦехКонтрИзмПрибИАвтом 1
30 ЭкологичЛаборат 1

В эксель-файле есть отличие, но искать мне его 'руками' 2-3 дня. Как можно найти различия?
Буду чертовски благодарен.
Mansitto вне форума Ответить с цитированием
Старый 23.03.2015, 13:48   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

По поводу исходного запроса WHERE description in ('ОтделПерспектРазв','ПроектОфис',. ..) будет чуть эффективней чем куча OR. А лучше вообще загнать перечень наименований в отдельную таблицу, будет очень эффективней.

Из Excel тоже можно запросом данные выдернуть и тогда найти несоответствия используя NOT EXISTS без проблем
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.03.2015, 13:58   #3
Mansitto
Пользователь
 
Регистрация: 23.03.2015
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
По поводу исходного запроса WHERE description in ('ОтделПерспектРазв','ПроектОфис',. ..) будет чуть эффективней чем куча OR. А лучше вообще загнать перечень наименований в отдельную таблицу, будет очень эффективней.

Из Excel тоже можно запросом данные выдернуть и тогда найти несоответствия используя NOT EXISTS без проблем
WHERE description in ('ОтделПерспектРазв','ПроектОфис',. .. - это равнозначно or?Я просто занимаюсь ораклом совсем недавно..
Mansitto вне форума Ответить с цитированием
Старый 23.03.2015, 14:17   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
это равнозначно or
Да .
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование результатов запроса в таблицу govorun1 Microsoft Office Access 0 31.10.2014 06:44
сравнение результатов расчетов blackarrow Microsoft Office Excel 10 12.02.2013 23:30
Обновление результатов запроса varyat Microsoft Office Access 24 02.09.2011 19:06
Вывод результатов sql-запроса в textbox r00tready Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 3 04.12.2010 19:58
Выгрузить результат sql-запроса в Excel ЛисЁНЫШ БД в Delphi 6 30.07.2010 15:53