powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос
33 сообщений из 33, показаны все 2 страниц
Запрос
    #34912693
FEAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите сделать запрос я ещё не очень сильно разбираюсь . Вобщем у меня есть колонка в таблице номера отделов вобщем там разные отделы те номера и и фио колонка нужно -

Определить, в каком отделе (отделах) работает больше всего сотрудников.
...
Рейтинг: 0 / 0
Запрос
    #34912754
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE CURSOR cTmp (Department i, FIO c( 10 ))

INSERT INTO cTmp VALUES ( 1 ,"AAA")
INSERT INTO cTmp VALUES ( 1 ,"BBB")
INSERT INTO cTmp VALUES ( 2 ,"CCC")
INSERT INTO cTmp VALUES ( 2 ,"DDD")
INSERT INTO cTmp VALUES ( 3 ,"EEE")

SELECT Department, COUNT(FIO) as Qty ;
	FROM cTmp ;
	GROUP BY Department ;
	INTO CURSOR cTmp2

SELECT * ;
	FROM cTmp2 ;
	WHERE Qty in (SELECT MAX(Qty) as Qty FROM cTmp2)
...
Рейтинг: 0 / 0
Запрос
    #34912818
FEAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что такое Qty?
...
Рейтинг: 0 / 0
Запрос
    #34912830
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FEASчто такое Qty?
А код посмотреть?
...
Рейтинг: 0 / 0
Запрос
    #34912869
FEAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Огромное спасибо всё понял я

а вот ещё вопрос
упорядоченные списки научных направлений, по которым нет специалистов.
те если его нет то выводил научное направление но я немогу сделать проверку что человека нет
...
Рейтинг: 0 / 0
Запрос
    #34912918
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FEASОгромное спасибо всё понял я

а вот ещё вопрос
упорядоченные списки научных направлений, по которым нет специалистов.
те если его нет то выводил научное направление но я немогу сделать проверку что человека нет
Э нет батенька, так не пойдёт. Мы что ж за тебя должны и таблички исходные мастрячить и код писать, да?
...
Рейтинг: 0 / 0
Запрос
    #34912938
FEAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у меня таблицы то есть все прост код что то не могу сделать
я вот составил одну вещь можеш погледеть
select nauchspecial from sorudniki where Fio not in (select distinct nauchspecial from sorudniki )

что неправьлно можеш посмотреть
...
Рейтинг: 0 / 0
Запрос
    #34912968
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FEASу меня таблицы то есть все
Но у нас то их нет. И какой они структуры, и где что хранится мы не знаем.

FEAS прост код что то не могу сделать
я вот составил одну вещь можеш погледеть
select nauchspecial from sorudniki where Fio not in (select distinct nauchspecial from sorudniki )
что неправьлно можеш посмотреть
Это и не будет работать. Что ж ты таблицу саму с собой сравниваешь?
...
Рейтинг: 0 / 0
Запрос
    #34912995
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
select * ;
   from НаучныеСпециальности ;
   where НаименованиеСпециальности not in (select dist НаименованиеСпециальности from Сотрудники)
...
Рейтинг: 0 / 0
Запрос
    #34913005
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksMed
Код: plaintext
1.
2.
select * ;
   from НаучныеСпециальности ;
   where НаименованиеСпециальности not in (select dist НаименованиеСпециальности from Сотрудники)


Твою бы энергию, да в мирных целях.
...
Рейтинг: 0 / 0
Запрос
    #34913010
FEAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как примерно сделать напиши без таблицы как думаеш сделать если пустое значение
...
Рейтинг: 0 / 0
Запрос
    #34913019
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist AleksMed
Код: plaintext
1.
2.
select * ;
   from НаучныеСпециальности ;
   where НаименованиеСпециальности not in (select dist НаименованиеСпециальности from Сотрудники)


Твою бы энергию, да в мирных целях.
У на ещё куча времени
...
Рейтинг: 0 / 0
Запрос
    #34913028
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot AleksMedУ на ещё куча времени [/quot]

Ты офигел, всего месяц, а лучше как всегда - ВЧЕРА.
...
Рейтинг: 0 / 0
Запрос
    #34913058
FEAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select nauchspecial from sorudniki where Fio not in (select dist fio from sorudniki)

не выходит так
...
Рейтинг: 0 / 0
Запрос
    #34913082
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FEASselect nauchspecial from sorudniki where Fio not in (select dist fio from sorudniki)

не выходит так
Как не может быть FIO в таблице из которой ты их выбираешь?
...
Рейтинг: 0 / 0
Запрос
    #34913097
FEAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
упорядоченные списки научных направлений, по которым нет специалистов

те если ведь нет специалиста то нет фио или нет, как узнать тогда что поле пустое и чела нет, и надо вывести научные направления по которым нет специалистов
...
Рейтинг: 0 / 0
Запрос
    #34913120
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FEASупорядоченные списки научных направлений, по которым нет специалистов

те если ведь нет специалиста то нет фио или нет, как узнать тогда что поле пустое и чела нет, и надо вывести научные направления по которым нет специалистов
В таблице сотрудников не может быть сотрудника которого там нет.
Там может быть сотрудник у которого нет специальности, НО нафига Вам такой сотрудник.
Покажи хотя бы структуру таблиц из которых делается выборка, иначе мы долго будем искать истину.
...
Рейтинг: 0 / 0
Запрос
    #34913167
FEAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот положил
...
Рейтинг: 0 / 0
Запрос
    #34913199
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если принять, что под научными направлениями подразумевается самая нижняя таблица на схеме и она называется Nauchn, то
Код: plaintext
1.
2.
select * ;
   from Nauchn ;
   where Shifr not in (Select ShifrSpec from Sorudniki)
...
Рейтинг: 0 / 0
Запрос
    #34913265
FEAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да теперь заработало выводит правильно

надо мне сделать "Качественный состав научных сотрудников отделов" (отдел, количество профессоров, количество доцентов).

я сделал так , select nomerotdel, Count(zvanie) from sorudniki where zvanie='proffessor'
и выводится отдел и количество профессоров допустим 5 а если я добавляю ещё и and zvanie='docent' доцент типа то он пишет 10 а мне нужно раздельно как бы в два столбика вывести но одним запросом
как сделать чтобы он считал звание отдельно Count(zvanie)
...
Рейтинг: 0 / 0
Запрос
    #34913351
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так:
Код: plaintext
1.
2.
select nomerotdel, Count(iif(zvanie='proffessor', 1 , 0 )) as Proff, ;
   Count(iif(zvanie='docent', 1 , 0 )) as Docent ;
from sorudniki

или так:
Код: plaintext
1.
2.
3.
select nomerotdel, Zvanie, Count(zvanie) as Qty ;
   from sorudniki ;
   group by nomerotdel, Zvanie ;
   order by nomerotdel, Zvanie
...
Рейтинг: 0 / 0
Запрос
    #34913481
FEAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
всё спасибо тебе , всё работает проблемы решены только вот в первом методе записи что то не обновляются , те выводит сначала кол во 120 а затем я удалил пару записей то он снова пишет 120 а второй метод всё гуд
...
Рейтинг: 0 / 0
Запрос
    #34913556
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleksMedМожно так:
Код: plaintext
1.
2.
select nomerotdel, Count(iif(zvanie='proffessor', 1 , 0 )) as Proff, ;
   Count(iif(zvanie='docent', 1 , 0 )) as Docent ;
from sorudniki



Тогда уж не count, а sum

Код: plaintext
1.
2.
select nomerotdel, SUM(iif(zvanie='proffessor', 1 , 0 )) as Proff, ;
   SUM(iif(zvanie='docent', 1 , 0 )) as Docent ;
from sorudniki
...
Рейтинг: 0 / 0
Запрос
    #34913583
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, SUM() и группировку ещё воткнуть нужно по отделам.
...
Рейтинг: 0 / 0
Запрос
    #34913587
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, энергетик, почту прочти.
...
Рейтинг: 0 / 0
Запрос
    #34913674
FEAS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо AleksMed теперь всё работает как часы )
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Запрос
    #35759283
George1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
написал запрос:

select depno, step, count(step) as qty
from emp
group by depno, step
order by depno, step;

В результате получил:

Название кафедры - Должность - Количество
Кафедра 1 профессор 2
Кафедра 1 доцент 3
Кафедра 2 профессор 4
Кафедра 2 доцент 8
Кафедра 3 доцент 3

А очень хотелось бы вот так:

Название кафедры - Профессоров - Доцентов
Кафедра 1 2 3
Кафедра 2 4 8
Кафедра 3 0 3


Как добиться такого результата через коррелированный подзапрос в списке выбора??

Подскажите, плиззз!!
...
Рейтинг: 0 / 0
Запрос
    #35759366
George1написал запрос:

select depno, step, count(step) as qty
from emp
group by depno, step
order by depno, step;

В результате получил:

Название кафедры - Должность - Количество
Кафедра 1 профессор 2
Кафедра 1 доцент 3
Кафедра 2 профессор 4
Кафедра 2 доцент 8
Кафедра 3 доцент 3

А очень хотелось бы вот так:

Название кафедры - Профессоров - Доцентов
Кафедра 1 2 3
Кафедра 2 4 8
Кафедра 3 0 3


Как добиться такого результата через коррелированный подзапрос в списке выбора??

Подскажите, плиззз!!

Примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Select a.depno,sum(iif(a.step="профессор",a.qty, 0 )) as prof,sum(iif(a.step="доцент",a.qty, 0 )) as docent;
from (;
select depno, step, count(step) as qty;
from emp;
group by depno, step;
order by depno, step;
) as a group by  1 
...
Рейтинг: 0 / 0
Запрос
    #35759386
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select depno,
sum(iif(step='Профессор',1,0)) ,
sum(iif(step='Доцент',1,0))
..............
from emp
group by depno

И перечислять все должности. Их, думаю, немного.

А вообще надо делать две таблицы с ключевыми полями.
...
Рейтинг: 0 / 0
Запрос
    #35759402
George1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно сделать используя count(*) from ... where ...
...
Рейтинг: 0 / 0
Запрос
    #35759437
George1А можно сделать используя count(*) from ... where ...
Можно:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select a.depno, a.qty as prof,b.qty as docent
from 
(select depno, count(*) as qty
from emp
where step="профессор"
group by depno
order by depno) as a,
(select depno, count(*) as qty
from emp
where step="доцент"
group by depno
order by depno) as b
where a.deptno=b.deptno
order by a.depno
...
Рейтинг: 0 / 0
Запрос
    #35759486
George1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде всё понятно, только смущает первая строчка, там prof и docent. Откуда они возьмутся?
В таблице нет таких полей. Будет правильно, если их заменить соответственно на
'Профессор' и 'доцент'
...
Рейтинг: 0 / 0
Запрос
    #35760493
George1Вроде всё понятно, только смущает первая строчка, там prof и docent. Откуда они возьмутся?
В таблице нет таких полей...
А Вы заметили перед ними ключевое слово "as", которое означает назначение полю нового имени (псевдонима)?
Код: plaintext
...a.qty as prof, b.qty as docent...
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]