3 / 3 / 2
Регистрация: 05.06.2013
Сообщений: 79
1

Как обратиться к динамическому столбцу по имени

05.06.2015, 11:38. Показов 3346. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как обратиться к динамическому столбцу по имени

SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT 
*
,(SELECT COUNT(`r`.`id`) FROM `qocEaW_reserv` `r` WHERE ((1435611600 BETWEEN `r`.`date_from` AND `r`.`date_to` OR 1436216400 BETWEEN `r`.`date_from`AND `r`.`date_to`) OR (`r`.`date_from` > 1435611600 AND `r`.`date_to`< 1436216400)) AND `r`.`room_id`=`rp`.id) AS `reserved`
#
,((`rp`.`numb_room`)-(SELECT COUNT(`r`.`id`) FROM `qocEaW_reserv` `r` WHERE ((1435611600 BETWEEN `r`.`date_from` AND `r`.`date_to` OR 1436216400 BETWEEN `r`.`date_from`AND `r`.`date_to`) OR (`r`.`date_from` > 1435611600 AND `r`.`date_to`< 1436216400)) AND `r`.`room_id`=`rp`.id)) AS `free`
#
FROM `qocEaW_rooms_pages` AS `rp`
WHERE 
`rp`.`max_man` BETWEEN 1.0 AND 4.0
AND `rp`.`numb_room`>(SELECT COUNT(`r`.`id`) FROM `qocEaW_reserv` `r` WHERE ((1435611600 BETWEEN `r`.`date_from` AND `r`.`date_to` OR 1436216400 BETWEEN `r`.`date_from`AND `r`.`date_to`) OR (`r`.`date_from` > 1435611600 AND `r`.`date_to`< 1436216400)) AND `r`.`room_id`=`rp`.id)
LIMIT 300
В этой части я делаю вложенный запрос и получается динамический столбец

SQL
1
(SELECT COUNT(`r`.`id`) FROM `qocEaW_reserv` `r` WHERE ((1435611600 BETWEEN `r`.`date_from` AND `r`.`date_to` OR 1436216400 BETWEEN `r`.`date_from`AND `r`.`date_to`) OR (`r`.`date_from` > 1435611600 AND `r`.`date_to`< 1436216400)) AND `r`.`room_id`=`rp`.id) AS `reserved`
Но когда я пытаюсь к нему обратиться при сравнении в WHERE по имени `reserved` получаю ошибку о том, что такого столбца не существует. Как с этим бороться? неужели нужно делать несколько вложенных запросов,чтобы сначала сделать выборку,а потом чтобы сравнить?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2015, 11:38
Ответы с готовыми решениями:

Как обратиться к столбцу DataGridView по его имени
Каким образом можно заполнить столбец Column1 данными из comboBox5, обратившись к столбцу по имени?...

Как обратиться к столбцу "DataGrid" по имени
Доброго времени суток, форумчане! Есть база данных Access. Подключаю ее к DataGrid-у целиком. ...

Циклы или как обратиться к столбцу в DBgrid
Не получается сделать цикл! table1.RecNo:=1; if...

Как поменять обратиться к столбцу через переменную
В общем проблема такая. Я должен через Update поменять значение в ячейке, но так как программа...

2
Модератор
4215 / 3056 / 583
Регистрация: 21.01.2011
Сообщений: 13,205
05.06.2015, 11:52 2
Лучший ответ Сообщение было отмечено olejan1991 как решение

Решение

Цитата Сообщение от olejan1991
неужели нужно делать несколько вложенных запросов,чтобы сначала сделать выборку,а потом чтобы сравнить?
Именно так. Для обращения к алиасу, объявленному в списке SELECT, нужен охватывающий запрос.
1
3 / 3 / 2
Регистрация: 05.06.2013
Сообщений: 79
05.06.2015, 12:09  [ТС] 3
жаль. не удобно это...
0
05.06.2015, 12:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2015, 12:09
Помогаю со студенческими работами здесь

Как обратиться повторно к тому же столбцу и работать с ним, не трогая первый запрос?
Задание: Вывести для каждого поставщика сколько им было поставлено продуктов: в год и в каждом...

Обращатся по динамическому имени
объекта. то есть хотелось бы так: в процессе выполнения программы формируется строка с названием...

Обращения к динамическому объекту по имени
Здравствуйте! Нужно обратитса к динамическому обьекту по имени потому что он создаетса в циклею ...

Как обратиться к элементу по имени?
Привет! Пример из ФАКа (Controls as TextBox).Text = &quot;newText&quot;; работает отлично, но когда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru