BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 21 июн 2025, 03:28

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
СообщениеДобавлено: 26 окт 2012, 14:41 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
И снова обращаюсь за помощью к знатокам.
Необходимо через SQL запрос получить список всех супердоговоров или же договоров не привязанных ни к кому (юридические лица), и во втором поле получить через запятую список ВСЕХ субдоговоров этого договора (зависимых и независимых)
Ситуация осложняется тем, что поле sub_list используется только для зависимых субдоговоров. Все независимые субдоговора прописывают у себя в поле scid - ID супердоговора.
Чем руководствовалась такая логика непонятно :D
Должно выглядеть как-то так
Код:
ID супердоговора, Title, sub_list

и в sub_list через запятую все субдоговора.
Если субдоговоров нет - то поле sub_list пустое

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 окт 2012, 14:48 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Необходимо нечто вроде
Код:
getSubContracts(int cid)
Получает все субдоговоры данного договора.

из ContractManager

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 окт 2012, 15:18 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Можно вот так
Код:
SELECT c.id, c.title, c.comment, CONCAT_WS(",",(SELECT sub_list FROM contract WHERE id = c.id), (SELECT GROUP_CONCAT(id) FROM contract WHERE scid = c.id))
FROM contract AS c
WHERE c.fc = 1
AND c.scid <= 0

Но тогда подставляется лишняя запятая впереди. Мешает :(
Вот например для трех договоров у первого из которых все субдоговора зависимые, у второго есть независимый субдоговор, а третий свободен
Код:
mysql> SELECT c.id, c.title, c.comment, CONCAT_WS(",",(SELECT sub_list FROM contract WHERE id = c.id), (SELECT GROUP_CONCAT(id) FROM contract WHERE scid = c.id))
    -> FROM contract AS c
    -> WHERE c.fc = 1
    -> AND c.scid <= 0
    -> AND c.title IN ('IPN000003', 'DP010746', 'PH000909');
+-------+-----------+----------------------------------+---------------------------------------------------------------------------------------------------------------------------+
| id    | title     | comment                          | CONCAT_WS(",",(SELECT sub_list FROM contract WHERE id = c.id), (SELECT GROUP_CONCAT(id) FROM contract WHERE scid = c.id)) |
+-------+-----------+----------------------------------+---------------------------------------------------------------------------------------------------------------------------+
|  8853 | DP010746  | ▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒ "▒▒▒▒▒▒▒ ▒▒▒▒▒" | 9023,9024,9025,12043,12131,12133,12134,15888,15897,18508,9023,9024,9025,12043,12131,12133,12134,15888,15897,18508         |
|  2325 | IPN000003 | ▒▒▒ "▒▒▒▒▒"                      | ,3848                                                                                                                     |
| 94840 | PH000909  | ▒▒▒   "▒▒▒▒▒"                    |                                                                                                                           |
+-------+-----------+----------------------------------+---------------------------------------------------------------------------------------------------------------------------+
3 rows in set (0.00 sec)

Эта лишняя запятая :(

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 26 окт 2012, 17:54 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Вместо CONCAT_WS использовать CONCAT - и вроде бы все получается :)
Сейчас еще тестирую

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.064s | 28 Queries | GZIP : On ]