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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2008, 19:18   #1
nikkol
 
Регистрация: 15.08.2008
Сообщений: 3
По умолчанию написать запрос, который бы выводил процентное соотношение

Есть база данных ТС:
ID_машины
Модель
Марка
ПТС
VIN
Задача в следующем: нужно написать запрос, который бы выводил процентное соотношение российских и иностранных машин. Пример:
российских - 40%, иностранных - 60%.
VIN - первые 2 буквы xt- означают, что машина российская
nikkol вне форума Ответить с цитированием
Старый 15.08.2008, 22:44   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

и что двумя простейшими запросами это не проще решить? :-)
Какая СУБД хоть??
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.08.2008, 22:42   #3
nikkol
 
Регистрация: 15.08.2008
Сообщений: 3
По умолчанию

Бд из одной таблицы. Она приведена выше. Нужно к ней составить SQL запрос.
Если можете, пожалуйста, напишите, какой можно составить запрос?
nikkol вне форума Ответить с цитированием
Старый 16.08.2008, 23:50   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

СУБД какая???? Oracle, MS SQL и что?
в какой среде Вы выполняете запросы?

Дело в том, что решение чисто с помощью одного SQL будет достаточно сложным - нужно использовать вложенные запросы (ну, лично я пока другого варианта не вижу...)
вот, примерно такой запрос сработает в Оракле (и, возможно, в MS SQL):

Код:
select 
 (KolVo_Rus/AllKolVo*100) as proc_rus,
 (KolVo_Inostr/AllKolVo*100) as proc_Inostr
from
 ( select 
    sum(case substr(VIN,1,2) when 'xt' then 1
      else 0 end) as KolVo_Rus,
    sum(case substr(VIN,1,2) when 'xt' then 0
      else 1 end) as KolVo_Inostr,
    count(*) as AllKolVo
     from  Tablica)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.08.2008, 15:37   #5
nikkol
 
Регистрация: 15.08.2008
Сообщений: 3
По умолчанию

Среда MS SQL
nikkol вне форума Ответить с цитированием
Старый 19.08.2008, 11:42   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

не поленился создать базу в MS SQL Express и проверить
вроде такой запрос отрабатывает нормально:

Код:
select 
 KolVo_Rus*100/AllKolVo as RusProc,
 KolVo_Inostr*100/AllKolVo as InostrProc
from
( select 
    sum(case when VIN LIKE 'xt%' then 1
      else 0 end) as KolVo_Rus,
    sum(case when VIN LIKE 'xt%' then 0
      else 1 end) as KolVo_Inostr,
    count(*) as AllKolVo
     from  DBO.Table_1) as AA
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать SQL запрос Vedrus SQL, базы данных 1 22.07.2008 13:21
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50
запрос который бы подсчитывал количество полных лет начиная с того года который указан в данных мне базах PereCCC Помощь студентам 8 15.05.2008 16:24
Программа падает при добавлении кода, который не используется. Protsv Общие вопросы Delphi 16 03.04.2008 08:01
скрипт который будет сам формировать запрос в Яндекс Antivoin HTML и CSS 1 18.08.2007 19:23