Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запросы подсчета, Подсчет кол-ва работников в отпуске 
V
    Опции темы
Wehr
Дата 29.4.2009, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.4.2009

Репутация: нет
Всего: нет



Запрос_1: Подсчет количества работников которые находятся в отпуске. Есть поля в таблице 4 (Service_data), котрые показывают, когда сотрудник идет в отпуск (holiday_begin) и когда он у него заканчивается (holiday_end) типы полей Date.
Запрос_2: Подсчет общего количества сотрудников на работе. В таблице есть поле "служебный номер" (num) тип integer.
Таблицы выглядят так:

1. Personal Data

num | surname | name | patronymic | year_birth | identification_num | series_pasport | num_pasport |

2. Family Data

num | marital_status | quantity_children | sreet | num_house | num_kv |

3. Education data

num | name_education | speciality | type_education | year_ending |

4. Service_data

num | post | date_arrival | date_care | holiday_begin | holiday_end | servise_note |

СУБД - FoxPro


Это сообщение отредактировал(а) Wehr - 29.4.2009, 17:09
PM MAIL   Вверх
Gluttton
Дата 29.4.2009, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 24
Всего: 54



Так что конкретно в Ваших запросах не работает? (И кстати где они? )


--------------------
Слава Україні!
PM MAIL   Вверх
Wehr
Дата 29.4.2009, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.4.2009

Репутация: нет
Всего: нет



2-ю задачу делаю так: 
Код

SET ANSI OFF  
   thisform.text3.Refresh  
   maks=ALLTRIM(thisform.text3.Value)  
   SELECT * FROM database!personal_data;   
   Where MAX(personal_data.num)=maks;  
   INTO CURSOR result

Пишет ошибку "Too few arguments" и подсвечивает последние 4 строки, подскажите где натупил?
PM MAIL   Вверх
Gluttton
Дата 29.4.2009, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начинающий
***


Профиль
Группа: Завсегдатай
Сообщений: 1170
Регистрация: 28.8.2008
Где: Феодосия

Репутация: 24
Всего: 54



Цитата

Пишет ошибку "Too few arguments" и подсвечивает последние 4 строки, подскажите где натупил?


Судя по всему количество в аргументов передаваемых в функцию больше чем нужно.

А что за СУБД?


--------------------
Слава Україні!
PM MAIL   Вверх
Akina
Дата 29.4.2009, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(Wehr @  29.4.2009,  09:33 Найти цитируемый пост)
2-ю задачу делаю так: 

А что делают точки с запятой в конце строк 4 и 5?

Задача 1 - WHERE Now() BETWEEN holiday_begin AND holiday_end


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Wehr
Дата 29.4.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.4.2009

Репутация: нет
Всего: нет



Akina, спасибо.
Есть строчка вида:
Код

Select max(personal_data.num) from database!personal_data

Она показывает макс. число в поле служебный номер сотрудника, что по сути является определением кол-ва сотрудников. Подскажите как результат вывести в текст-бокс?

Это сообщение отредактировал(а) Wehr - 29.4.2009, 17:39
PM MAIL   Вверх
Akina
Дата 29.4.2009, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 454



Цитата(Wehr @  29.4.2009,  18:37 Найти цитируемый пост)
Она показывает макс. число в поле служебный номер сотрудника, что по сути является определением кол-ва сотрудников.

Во бредятина (сорри)! Если бы не max, а count - другое дело...

Цитата(Wehr @  29.4.2009,  18:37 Найти цитируемый пост)
как результат вывести в текст-бокс?

Мы всё-таки дождёмся сообщения о том, о какой СУБД и, видимо, среде программирования речь?
PS. Второй вопрос - явно не для этого раздела.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Wehr
Дата 29.4.2009, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.4.2009

Репутация: нет
Всего: нет



Akina, СУБД - FoxPro. Насчет текст-бокса, я понимаю что:
Код

formname.textboxname.value=lnVariable 
thisform.refresh() 

или 

formname.textboxname.text=lnVariable 
thisform.refresh()

но там ведь для переменных, а здесь все в одной строке указывается, тем более это как-бы выборка (насколько я понял).
Если с count то, что писать после WHERE?
Код

select count(*) from database!personal_data where


Делаю так:
Код

 num=thisform.text3.Value
 Select count(*) from database!personal_data WHERE personal_data.num=num
 thisform.text3.value=num 
 thisform.refresh()

Все работает, но выводит мое значение в другом окне. А я ведь хочу в указанном мною текст-боксе. Что делать?

Это сообщение отредактировал(а) Wehr - 29.4.2009, 18:39
PM MAIL   Вверх
Wehr
Дата 30.4.2009, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.4.2009

Репутация: нет
Всего: нет



1-е задание делаю так: 
  
     
Код

     SELECT COUNT(*) FROM database!service_data WHERE holiday_begin>=DATE() AND holiday_end<=DATE() into m.tmp  
     thisform.text4.value=m.tmp     
     thisform.refresh()

Пишет "синтаксическая ошибка" и подсвечивает 1-ю строку. Подскажите, что не так? 

Можно и так, как я понимаю: 
     
Код

     SELECT COUNT(*) FROM database!service_data WHERE DATE() BETWEEN holiday_begin AND holiday_end  into m.tmp   
     thisform.text4.value=m.tmp     
     thisform.refresh()

помоему разницы нет. Но все же синтаксическая ошибка и в первом и во втором случае. Какие ваши предложения?

Это сообщение отредактировал(а) Wehr - 3.5.2009, 13:36
PM MAIL   Вверх
Wehr
Дата 4.5.2009, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 29.4.2009

Репутация: нет
Всего: нет



ТЕМА ЗАКРЫТА
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.0636 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.