<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.oktell.ru/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://wiki.oktell.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BE%D0%B2</id>
		<title>Распаковка номеров - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.oktell.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A0%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BE%D0%B2"/>
		<link rel="alternate" type="text/html" href="https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BE%D0%B2&amp;action=history"/>
		<updated>2026-04-30T16:54:22Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.23.1</generator>

	<entry>
		<id>https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BE%D0%B2&amp;diff=11160&amp;oldid=prev</id>
		<title>Oktell Support в 11:58, 22 декабря 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BE%D0%B2&amp;diff=11160&amp;oldid=prev"/>
				<updated>2014-12-22T11:58:41Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 11:58, 22 декабря 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Дополнительно&lt;/del&gt;|Наверх]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Работа с БД Oktell&lt;/ins&gt;|Наверх]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Запрос позволяет найти такой внутренний номер у пользователя, в котором &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Запрос позволяет найти такой внутренний номер у пользователя, в котором &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Oktell Support</name></author>	</entry>

	<entry>
		<id>https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BE%D0%B2&amp;diff=7565&amp;oldid=prev</id>
		<title>Oktell Support в 09:12, 12 марта 2014</title>
		<link rel="alternate" type="text/html" href="https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BE%D0%B2&amp;diff=7565&amp;oldid=prev"/>
				<updated>2014-03-12T09:12:41Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 09:12, 12 марта 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 7:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 7:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Задача актуальна при поиске номера со структурой &amp;quot;пользователь + внешний телефон&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Задача актуальна при поиске номера со структурой &amp;quot;пользователь + внешний телефон&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В качестве примера запрос находит номер &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;у пользователя 1&lt;/del&gt;. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;В качестве примера запрос находит номер &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;с именем оператора '''пользователь1'''&lt;/ins&gt;. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Oktell Support</name></author>	</entry>

	<entry>
		<id>https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BE%D0%B2&amp;diff=7564&amp;oldid=prev</id>
		<title>Oktell Support: Новая страница: «Наверх  Запрос позволяет найти такой внутренний номер у пользователя, в к...»</title>
		<link rel="alternate" type="text/html" href="https://wiki.oktell.ru/index.php?title=%D0%A0%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80%D0%BE%D0%B2&amp;diff=7564&amp;oldid=prev"/>
				<updated>2014-03-12T09:12:04Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&lt;a href=&quot;/index.php?title=%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Дополнительно (страница не существует)&quot;&gt;Наверх&lt;/a&gt;  Запрос позволяет найти такой внутренний номер у пользователя, в к...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Дополнительно|Наверх]]&lt;br /&gt;
&lt;br /&gt;
Запрос позволяет найти такой внутренний номер у пользователя, в котором &lt;br /&gt;
* не должно быть других пользователей или номеров ссылающихся на других пользователей;&lt;br /&gt;
* могут быть внешние номера, линии, быстрые номера.&lt;br /&gt;
&lt;br /&gt;
Задача актуальна при поиске номера со структурой &amp;quot;пользователь + внешний телефон&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
В качестве примера запрос находит номер у пользователя 1. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 	if exists ( select * from tempdb..sysobjects where id=OBJECT_ID ( 'tempdb..#t' )) Drop table #t&lt;br /&gt;
 	if exists ( select * from tempdb..sysobjects where id=OBJECT_ID ( 'tempdb..#temp' )) Drop table #temp&lt;br /&gt;
 	if exists ( select * from tempdb..sysobjects where id=OBJECT_ID ( 'tempdb..#removed' )) Drop table #removed&lt;br /&gt;
 	Create table #t ( nid uniqueidentifier, reactid uniqueidentifier )&lt;br /&gt;
 	Create table #temp ( id uniqueidentifier, oldrid uniqueidentifier, newrid uniqueidentifier )&lt;br /&gt;
 	Create table #removed ( nid uniqueidentifier, reactid uniqueidentifier )&lt;br /&gt;
 	&lt;br /&gt;
 	Insert Into #t&lt;br /&gt;
 		Select np.Id, rr.ReactId&lt;br /&gt;
 		From A_NumberPlan np&lt;br /&gt;
 			Inner Join A_NumberPlanAction na on na.NumId = np.Id&lt;br /&gt;
 			Inner Join A_Rules r on na.ExtraId = r.Id&lt;br /&gt;
 			Inner Join A_RuleRecords rr on rr.RuleId = r.Id&lt;br /&gt;
 		Where na.NumType = 0 &lt;br /&gt;
 &lt;br /&gt;
 	Declare @cnt int, @rowcount int, @msg int&lt;br /&gt;
 	Select @cnt = 0, @rowcount = 1&lt;br /&gt;
 	&lt;br /&gt;
 	While ( @rowcount &amp;gt; 0 ) and ( @cnt &amp;lt; 10 )&lt;br /&gt;
 	begin&lt;br /&gt;
 		Set @cnt = @cnt + 1&lt;br /&gt;
 	&lt;br /&gt;
 		--ссылки на номера @cnt - уровня&lt;br /&gt;
 		Insert Into #temp&lt;br /&gt;
 			Select t.nid, t.reactid, t1.reactid&lt;br /&gt;
 			From #t t&lt;br /&gt;
 				 Inner Join #t t1 on ( t.Reactid = t1.nId ) and ( t1.nId != t.nId ) and ( t1.reactid != t.nId )&lt;br /&gt;
 			Where t.ReactId != t.Nid&lt;br /&gt;
 				and not exists ( select nid from #removed r where t.nid = r.nid and t1.reactid = r.reactid )&lt;br /&gt;
 				and not exists ( select nid from #t r where t.nid = r.nid and t1.reactid = r.reactid )&lt;br /&gt;
 			Group by t.nid, t.reactid, t1.reactid&lt;br /&gt;
 	&lt;br /&gt;
 		-- 	&lt;br /&gt;
 		Insert into #removed ( nid, reactid )&lt;br /&gt;
 			Select t.nid, t.reactid&lt;br /&gt;
 			From #t t&lt;br /&gt;
 				Inner join #temp tmp on t.nid= tmp.id and t.reactid = tmp.oldrid&lt;br /&gt;
 			Where not exists ( select nid from #removed r where t.nid = r.nid and t.reactid = r.reactid )&lt;br /&gt;
 			Group by t.nid, t.reactid&lt;br /&gt;
 							&lt;br /&gt;
 		--Удаляем то что будем менять&lt;br /&gt;
 		Delete From #t&lt;br /&gt;
 			From #temp&lt;br /&gt;
 		Where nid = id and reactid = oldrid&lt;br /&gt;
 	&lt;br /&gt;
 		--вставляем замены&lt;br /&gt;
 		Insert Into #t ( nid, reactid )&lt;br /&gt;
 			Select id, newrid From #temp&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 		--чистим времянку&lt;br /&gt;
 		Select @rowcount = COUNT ( * ) &lt;br /&gt;
 		From #temp&lt;br /&gt;
 				&lt;br /&gt;
 		Truncate table #temp&lt;br /&gt;
 	end&lt;br /&gt;
 		&lt;br /&gt;
 	-- удаляем остатки ссылок на номера&lt;br /&gt;
 	Delete From #t&lt;br /&gt;
 		From A_NumberPlan np&lt;br /&gt;
 	Where reactid = np.Id&lt;br /&gt;
 	&lt;br /&gt;
 		&lt;br /&gt;
 	--select np.Prefix, u.login from #t t inner join A_Users u on t.reactid=u.ID &lt;br /&gt;
 	--inner join A_NumberPlan np on t.nid=np.ID &lt;br /&gt;
 	--order by prefix&lt;br /&gt;
 	--where login='Пользователь1'&lt;br /&gt;
 	&lt;br /&gt;
 	select t1.prefix from &lt;br /&gt;
 	(select prefix from &lt;br /&gt;
 	(&lt;br /&gt;
 	select np.Prefix, u.login from #t t inner join A_Users u on t.reactid=u.ID &lt;br /&gt;
 	inner join A_NumberPlan np on t.nid=np.ID &lt;br /&gt;
 	)t&lt;br /&gt;
 	group by Prefix having COUNT (*) = 1 )t1&lt;br /&gt;
 	inner join &lt;br /&gt;
 	(&lt;br /&gt;
 	select np.Prefix, u.login from #t t inner join A_Users u on t.reactid=u.ID &lt;br /&gt;
 	inner join A_NumberPlan np on t.nid=np.ID &lt;br /&gt;
 	)&lt;br /&gt;
 	t2&lt;br /&gt;
 	on t1.Prefix=t2.Prefix and t2.Login='Пользователь1'&lt;/div&gt;</summary>
		<author><name>Oktell Support</name></author>	</entry>

	</feed>