Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Row_number(partition by ... order by...)  [new]
gosurusya
Member

Откуда:
Сообщений: 28
Ребята добрый день! Очень нужна ваша помощь возможно я много напишу но у меня трудная задача. Вообщем так, есть табличка с контрактами и номерами и процей фигней по номеру договора компании мтс. Вот пример:


+
Контракт № 6514633 Номер телефону: 503888296
Ціновий пакет: GSM 'Бізнес Оптимальний-2'
ВАРТІСТЬ ПАКЕТА/ЩОМІСЯЧНА ПЛАТА:,3.63,4.17,7.80
"ПОСЛУГИ, НАДАНІ ЗА МЕЖАМИ ПАКЕТА:",,,0.00
Вихідні дзвінки по Україні,,,0.00
Вихідні дзвінки абонентам інших мобільних операторів,,,0.00
Вихідні дзвінки абонентам інших мобільних операторів,,,0.00
Вихідні дзвінки абонентам МТС та МТС Передоплата,,,0.00
Вихідні дзвінки абонентам МТС та МТС Передоплата,,,0.00
Вихідні дзвінки послуги "Передзвони мені в роумінг",,,0.00
Вихідні дзвінки послуги "Передзвони мені в роумінг",,,0.00
Вхідні дзвінки,,,0.00
'Прямий' номер (переадресація на мобільний номер),,,0.00
Вихідні дзвінки з України за кордон,,,0.00
Вихідні дзвінки послуги 'MTS International',,,0.00
Передача данних GSM,,,0.00
Передача факсів,,,0.00
Мобільний інтернет,,,0.00
SMS,,,0.00
SMS за межі України,,,0.00
Пакет "СМС-Помічник",,,0.00
SMS 10 років МТС,,,0.00
Звіт про доставку SMS,,,0.00
MMS повідомлення,,,0.00
Пейджинговi повiдомлення,,,0.00
Дзвінки на номер 'МТС-ПАРА',,,0.00
Зміна номеру 'МТС-ПАРА',,,0.00
Вихідні дзвінки на номери 'Моєї Сім'ї',,,0.00
Зміна номеру 'Моєї Сім'ї',,,0.00
Вихідні дзвінки в Корпоративній групі,,,0.00
Вихідні дзвінки в Корпоративній Мережі-Базовій,,,0.00
Вихідні дзвінки з Корпоративної Мережі-Базової на мережу МТС,,,0.00
Вихідні дзвінки в Корпоративній мережі,,,0.00
Вихідні дзвінки з Корпоративної мережі на мережу МТС,,,0.00
Вихідні дзвінки в Партнерську Корпоративну Мережу,,,0.00
Вихідні дзвінки на Голосову пошту,,,0.00
"Мобільний GPRS-Інтернет",,,0.00
"ГіперАктив",,,0.00
"Гіпер.NET",,,0.00
"СмартNET",,,0.00
"СмартАктив",,,0.00
"Opera Mini на день",,,0.00
CDMA-безпроводовий доступ до Інтернет,,,0.00
"WAP GPRS (APN: wap.mts.ua , daily.wap.mts.ua)",,,0.00
'GPRS Корпоративна мережа' (APN fc.umc.ua),,,0.00
Вихідні дзвінки 'Моя Область',,,0.00
Вихідні місцеві дзвінки,,,0.00
Вихідні дзвінки в межах області,,,0.00
Дзвінки абонентам мереж супутникових операторів,,,0.00
Дзвінки на номер 800,,,0.00
ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:,12.37,16.67,29.04
Щомісячна плата за базові послуги,0.00,0.00,0.00
Щомісячна плата за послугу факс,0.00,0.00,0.00
Opera Mini на місяць,0.00,0.00,0.00
Замовлення послуги М'яке лімітування,0.00,0.00,0.00
Вартість послуги М'яке лімітування,0.00,0.00,0.00
Щомісячна плата (інші сервіси),0.00,0.00,0.00
Вартість послуги 'Моя Сім'я',0.00,0.00,0.00
Вартість послуги 'Корпоративна група',0.00,0.00,0.00
Вартість послуги 'Корпоративна Мережа-Базова',0.00,0.00,0.00
Вартість послуги 'Корпоративна мережа',0.00,0.00,0.00
Вартість послуги 'Інтегрована Мережа',0.00,0.00,0.00
Вартість послуги 'Голосова пошта',0.00,0.00,0.00
Детальний рахунок (друкований),0.00,0.00,0.00
Вартість послуги GPRS Інтернет 30,0.00,0.00,0.00
Вартість послуги GPRS Інтернет 100,0.00,0.00,0.00
Вартість послуги GPRS Інтернет 250,0.00,0.00,0.00
Вартість послуги GPRS Плюс 30,0.00,0.00,0.00
Вартість послуги GPRS Плюс 100,0.00,0.00,0.00
Вартість послуги GPRS Інтернет 10,0.00,0.00,0.00
Вартість послуги "Додатковий пакет",12.37,16.67,29.04
Вартість активації "Одна гривня на весь Світ!",0.00,0.00,0.00
Вартість послуги "Одна гривня на весь Світ!",0.00,0.00,0.00
Пакет "СМС-Помічник",0.00,0.00,0.00
Вартість послуги Cтатична ip-адреса,0.00,0.00,0.00
Вартість послуги MMS Альбом,0.00,0.00,0.00
Вартість послуги BlackBerry,0.00,0.00,0.00
Вартість послуги BlackBerry Internet,0.00,0.00,0.00
Вартість послуги BlackBerry Plus,0.00,0.00,0.00
Вартість послуги BlackBerry World,0.00,0.00,0.00
Вартість послуги МТС WAP GPRS,0.00,0.00,0.00
Активація послуги 'Моя Область',0.00,0.00,0.00
Вартість послуги 'Моя Область',0.00,0.00,0.00
Послуга 'МТС-ПАРА',0.00,0.00,0.00
Вартість активації "Заборона визначення номеру",0.00,0.00,0.00
Вартість послуги "Заборона визначення номера",0.00,0.00,0.00
Підключення послуги "Супервизначник номера",0.00,0.00,0.00
Вартість послуги "Супервизначник номера",0.00,0.00,0.00
"КОНТЕНТ-ПОСЛУГИ:",,,0.00
"НАДАНІ КОНТЕНТ-ПОСЛУГИ:",,,0.00
Послуга GOOD'OK,,,0.00
"SMS,USSD,MMS,WAP,довідкові,розважальні та інші сервіси за спец.цінами",,,0.00
"Голосові довідкові, розважальні та інші сервіси за спец. цінами",,,0.00
МТС WAP,,,0.00
Online TV,,,0.00
"ЗАМОВЛЕНІ КОНТЕНТ-ПОСЛУГИ:",0.00,0.00,0.00
Вартість послуги Корпоративний GOOD'OK,0.00,0.00,0.00
Вартість послуги Моб.співробітники (ТМ Тестовий),0.00,0.00,0.00
Вартість послуги Моб.співробітники (ТМ Легкий),0.00,0.00,0.00
Вартість послуги Моб.співробітники (ТМ Базовий),0.00,0.00,0.00
Вартість послуги Моб.співробітники (ТМ Безлімітний),0.00,0.00,0.00
ПОСЛУГИ МІЖНАРОДНОГО РОУМІНГУ:,,,0.00
"Послуги, надані в мережах іноземних роумінг-партнерів (ПФ не нараховується)",,,0.00
Послуги із забезпечення міжнародного роумінгу,,,0.00
Послуги із забезпечення викликів до абонента в роумінгу,,,0.00
СПЕЦІАЛЬНІ ПОСЛУГИ:,,,0.00
ЗАГАЛОМ ЗА КОНТРАКТОМ (БЕЗ ПДВ ТА ПФ):,,,36.84
Згідно пакета GSM 'Бізнес Оптимальний-2' надано пільгових хвилин 870 хв. 58 с.
Використано 0 хв. 00 с.
Згідно пакета 2000MB_20UAH надано додаткових МБ GPRS Internet 1483.87Mb
Використано 0.00Mb






Контракт № 6507805 Номер телефону: 503527735
Ціновий пакет: GSM 'Бізнес Оптимальний-2'
ВАРТІСТЬ ПАКЕТА/ЩОМІСЯЧНА ПЛАТА:,0.00,8.33,8.33
"ПОСЛУГИ, НАДАНІ ЗА МЕЖАМИ ПАКЕТА:",,,363.30
Вихідні дзвінки по Україні,,,4.66
Вихідні дзвінки абонентам інших мобільних операторів,,,33.56
Вихідні дзвінки абонентам МТС та МТС Передоплата,,,0.00
Вихідні дзвінки послуги "Передзвони мені в роумінг",,,0.00
Вхідні дзвінки,,,0.00
'Прямий' номер (переадресація на мобільний номер),,,0.00
Вихідні дзвінки з України за кордон,,,0.00
Вихідні дзвінки послуги 'MTS International',,,0.00
Передача данних GSM,,,0.00
Передача факсів,,,0.00
Мобільний інтернет,,,0.00
SMS,,,325.08
SMS за межі України,,,0.00
Пакет "СМС-Помічник",,,0.00
SMS 10 років МТС,,,0.00
Звіт про доставку SMS,,,0.00
MMS повідомлення,,,0.00
Пейджинговi повiдомлення,,,0.00
Дзвінки на номер 'МТС-ПАРА',,,0.00
Зміна номеру 'МТС-ПАРА',,,0.00
Вихідні дзвінки на номери 'Моєї Сім'ї',,,0.00
Зміна номеру 'Моєї Сім'ї',,,0.00
Вихідні дзвінки в Корпоративній групі,,,0.00
Вихідні дзвінки в Корпоративній Мережі-Базовій,,,0.00
Вихідні дзвінки з Корпоративної Мережі-Базової на мережу МТС,,,0.00
Вихідні дзвінки в Корпоративній мережі,,,0.00
Вихідні дзвінки з Корпоративної мережі на мережу МТС,,,0.00
Вихідні дзвінки в Партнерську Корпоративну Мережу,,,0.00
Вихідні дзвінки на Голосову пошту,,,0.00
"Мобільний GPRS-Інтернет",,,0.00
"ГіперАктив",,,0.00
"Гіпер.NET",,,0.00
"СмартNET",,,0.00
"СмартАктив",,,0.00
"Opera Mini на день",,,0.00
CDMA-безпроводовий доступ до Інтернет,,,0.00
"WAP GPRS (APN: wap.mts.ua , daily.wap.mts.ua)",,,0.00
'GPRS Корпоративна мережа' (APN fc.umc.ua),,,0.00
Вихідні дзвінки 'Моя Область',,,0.00
Вихідні місцеві дзвінки,,,0.00
Вихідні дзвінки в межах області,,,0.00
Дзвінки абонентам мереж супутникових операторів,,,0.00
Дзвінки на номер 800,,,0.00
ЗАМОВЛЕНІ ДОДАТКОВІ ПОСЛУГИ ЗА МЕЖАМИ ПАКЕТА:,4.17,20.84,25.01
Щомісячна плата за базові послуги,4.17,4.17,8.34
Щомісячна плата за послугу факс,0.00,0.00,0.00
Opera Mini на місяць,0.00,0.00,0.00
Замовлення послуги М'яке лімітування,0.00,0.00,0.00
Вартість послуги М'яке лімітування,0.00,0.00,0.00
Щомісячна плата (інші сервіси),0.00,0.00,0.00
Вартість послуги 'Моя Сім'я',0.00,0.00,0.00
Вартість послуги 'Корпоративна група',0.00,0.00,0.00
Вартість послуги 'Корпоративна Мережа-Базова',0.00,0.00,0.00
Вартість послуги 'Корпоративна мережа',0.00,0.00,0.00
Вартість послуги 'Інтегрована Мережа',0.00,0.00,0.00
Вартість послуги 'Голосова пошта',0.00,0.00,0.00
Детальний рахунок (друкований),0.00,0.00,0.00
Вартість послуги GPRS Інтернет 30,0.00,0.00,0.00
Вартість послуги GPRS Інтернет 100,0.00,0.00,0.00
Вартість послуги GPRS Інтернет 250,0.00,0.00,0.00
Вартість послуги GPRS Плюс 30,0.00,0.00,0.00
Вартість послуги GPRS Плюс 100,0.00,0.00,0.00
Вартість послуги GPRS Інтернет 10,0.00,0.00,0.00
Вартість послуги "Додатковий пакет",0.00,16.67,16.67
Вартість активації "Одна гривня на весь Світ!",0.00,0.00,0.00
Вартість послуги "Одна гривня на весь Світ!",0.00,0.00,0.00
Пакет "СМС-Помічник",0.00,0.00,0.00
Вартість послуги Cтатична ip-адреса,0.00,0.00,0.00
Вартість послуги MMS Альбом,0.00,0.00,0.00
Вартість послуги BlackBerry,0.00,0.00,0.00
Вартість послуги BlackBerry Internet,0.00,0.00,0.00
Вартість послуги BlackBerry Plus,0.00,0.00,0.00
Вартість послуги BlackBerry World,0.00,0.00,0.00
Вартість послуги МТС WAP GPRS,0.00,0.00,0.00
Активація послуги 'Моя Область',0.00,0.00,0.00
Вартість послуги 'Моя Область',0.00,0.00,0.00
Послуга 'МТС-ПАРА',0.00,0.00,0.00
Вартість активації "Заборона визначення номеру",0.00,0.00,0.00
Вартість послуги "Заборона визначення номера",0.00,0.00,0.00
Підключення послуги "Супервизначник номера",0.00,0.00,0.00
Вартість послуги "Супервизначник номера",0.00,0.00,0.00
"КОНТЕНТ-ПОСЛУГИ:",,,0.00
"НАДАНІ КОНТЕНТ-ПОСЛУГИ:",,,0.00
Послуга GOOD'OK,,,0.00
"SMS,USSD,MMS,WAP,довідкові,розважальні та інші сервіси за спец.цінами",,,0.00
"Голосові довідкові, розважальні та інші сервіси за спец. цінами",,,0.00
МТС WAP,,,0.00
Online TV,,,0.00
"ЗАМОВЛЕНІ КОНТЕНТ-ПОСЛУГИ:",0.00,0.00,0.00
Вартість послуги Корпоративний GOOD'OK,0.00,0.00,0.00
Вартість послуги Моб.співробітники (ТМ Тестовий),0.00,0.00,0.00
Вартість послуги Моб.співробітники (ТМ Легкий),0.00,0.00,0.00
Вартість послуги Моб.співробітники (ТМ Базовий),0.00,0.00,0.00
Вартість послуги Моб.співробітники (ТМ Безлімітний),0.00,0.00,0.00
ПОСЛУГИ МІЖНАРОДНОГО РОУМІНГУ:,,,0.00
"Послуги, надані в мережах іноземних роумінг-партнерів (ПФ не нараховується)",,,0.00
Послуги із забезпечення міжнародного роумінгу,,,0.00
Послуги із забезпечення викликів до абонента в роумінгу,,,0.00
СПЕЦІАЛЬНІ ПОСЛУГИ:,,,0.00
ЗАГАЛОМ ЗА КОНТРАКТОМ (БЕЗ ПДВ ТА ПФ):,,,396.64
Згідно пакета GSM 'Бізнес Оптимальний-2' надано пільгових хвилин 1000 хв. 00 с.
Використано 422 хв. 58 с.
Згідно пакета 2000MB_20UAH надано додаткових МБ GPRS Internet 2000.00Mb
Використано 214.33Mb



вот примерно такая. Там много информации всякой. Что мне нужно
сделать еще одну колоку что эти данные которые повторяются и в 1 и во 2 отображалсь по порядку и было понятно до каких данных из справочнииком оно подходит. Вот вложение справочника


1 Контракт
2 ЗАГАЛОМ ЗА КОНТРАКТОМ
3 'GPRS Корпоративна мережа'
4 ПОСЛУГИ МІЖНАРОДНОГО РОУМІНГУ
5 Вартість послуги BlackBerry Internet
6 "WAP GPRS (APN: wap.mts.ua , daily.wap.mts.ua)"
7 CDMA-безпроводовий доступ до Інтернет
8 "Мобільний GPRS-Інтернет"
9 Вихідні дзвінки з Корпоративної мережі на мережу МТС
10 MMS повідомлення
11 SMS,,
12 SMS за межі України
13 Вихідні дзвінки послуги 'MTS International'
14 'Прямий' номер (переадресація на мобільний номер)
15 Вихідні дзвінки абонентам інших мобільних операторів
16 Вихідні дзвінки по Україні
17 Вихідні дзвінки з України за кордон
18 MMS повідомлення
19 Щомісячна плата (інші сервіси)
20 Вартість послуги "Додатковий пакет"
21 "Голосові довідкові, розважальні та інші сервіси за спец. цінами"
22 "SMS,USSD,MMS,WAP,довідкові,розважальні та інші сервіси за спец.цінами"

Вот и у меня не выходит

Модератор: Впредь засовывайте длинные портянки чего угодно в тег spoiler.


Сообщение было отредактировано: 1 апр 14, 12:50
1 апр 14, 12:47    [15815469]     Ответить | Цитировать Сообщить модератору
 Re: Row_number(partition by ... order by...)  [new]
Glory
Member

Откуда:
Сообщений: 104751
gosurusya
Вот и у меня не выходит

И что вы попробовали ?
1 апр 14, 12:49    [15815485]     Ответить | Цитировать Сообщить модератору
 Re: Row_number(partition by ... order by...)  [new]
gosurusya
Member

Откуда:
Сообщений: 28
Glory,
Вот мой запрос

SELECT me.fff, me.source_name
--,s.explanation
	,CASE WHEN me.fff LIKE '%,%' THEN 
	REVERSE(LEFT ( REVERSE(fff), PATINDEX('%,%',REVERSE(fff))-1))
	WHEN me.fff LIKE '%Контракт №%' THEN  REPLACE(REPLACE(me.fff, N'Контракт № ',''), N'Номер телефону: ', '') 
	 ELSE NULL END  AS kola
--	 , WHILE me.fff LIKE '%[^0-9]%' SET me.fff=STUFF(me.fff,PATINDEX('%[^0-9]%',me.fff),1,'')
--SELECT me.fff
,CASE WHEN me.fff LIKE s.explanation + '%' THEN s.id ELSE NULL END AS f

	FROM ldwhstaging.dbo.MTS_export2 me
	
inner  JOIN 
	(SELECT id,explanation
	 FROM ldwhstaging.dbo.spravochnik s
	 )s ON me.fff LIKE s.explanation + '%'
	 
	 
	
	 )b
	ORDER BY b.f


Сообщение было отредактировано: 1 апр 14, 12:52
1 апр 14, 12:50    [15815497]     Ответить | Цитировать Сообщить модератору
 Re: Row_number(partition by ... order by...)  [new]
Glory
Member

Откуда:
Сообщений: 104751
gosurusya
Вот мой запро

Этот запрос выдает ошибку
Msg 102, Level 15, State 1, Line 20
Incorrect syntax near ')'.
1 апр 14, 12:52    [15815511]     Ответить | Цитировать Сообщить модератору
 Re: Row_number(partition by ... order by...)  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
...
REVERSE(LEFT ( REVERSE(fff), PATINDEX('%,%',REVERSE(fff))-1))
...


О, Боже! Что это???? Для чего????
1 апр 14, 15:16    [15816433]     Ответить | Цитировать Сообщить модератору
 Re: Row_number(partition by ... order by...)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8833
Отщипнуть до первой запятой справа.
1 апр 14, 15:40    [15816654]     Ответить | Цитировать Сообщить модератору
 Re: Row_number(partition by ... order by...)  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4478
Владислав Колосов
Отщипнуть до первой запятой справа.

Тоже так подумал... А почему не так:
...
RIGHT(fff,LEN(fff)-CHARINDEX(',',REVERSE(fff))+1))
...
1 апр 14, 15:46    [15816697]     Ответить | Цитировать Сообщить модератору
 Re: Row_number(partition by ... order by...)  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8833
Я бы CLR функцию соорудил для таких целей.
1 апр 14, 15:50    [15816727]     Ответить | Цитировать Сообщить модератору
 Re: Row_number(partition by ... order by...)  [new]
gosurusya
Member

Откуда:
Сообщений: 28
SELECT me.fff, me.source_name
--,s.explanation
,CASE WHEN me.fff LIKE '%,%' THEN
REVERSE(LEFT ( REVERSE(fff), PATINDEX('%,%',REVERSE(fff))-1))
WHEN me.fff LIKE '%Контракт №%' THEN REPLACE(REPLACE(me.fff, N'Контракт № ',''), N'Номер телефону: ', '')
ELSE NULL END AS kola
-- , WHILE me.fff LIKE '%[^0-9]%' SET me.fff=STUFF(me.fff,PATINDEX('%[^0-9]%',me.fff),1,'')
--SELECT me.fff
,CASE WHEN me.fff LIKE s.explanation + '%' THEN s.id ELSE NULL END AS fanta
,row_number() OVER( partition by me.fff ORDER BY me.fff ) AS rown
FROM ldwhstaging.dbo.MTS_export2 me

inner JOIN
(SELECT id,explanation
FROM ldwhstaging.dbo.spravochnik s
)s ON me.fff LIKE s.explanation + '%'



ORDER BY s.idGlory,
1 апр 14, 16:42    [15817297]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить