Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] 4 вперед Ctrl→ все |
Glory Member Откуда: Сообщений: 104751 |
Если вам нужно для каждой записи одной таблицы получить каждую запись другой таблицы, то это называется умножением таблиц. И этому соответствует команда CROSS JOIN ЗЫ Как можно решать сложные задачи, не владея базовыми знаниями работы со множествами ? |
||
11 окт 12, 15:20 [13303129] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
я понял есть табличные переменные их надо перевести в тип географии....так как наш тип в таблице sql не понимает...вот просто как средствами реализовать пока не дошло.....для дальнейшей работы мне надо тип geography... но пока вот ищу решение....т.е. как правильно перевести тип |
||
11 окт 12, 15:21 [13303149] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Поток сознания крепчал. Вы не таблицы "переводите в тип географи" Вы на основе значений полей создаете новое поле с типом географи. А с таблицами надо работать как с таблицами. Независимо от того сколько у них полей и какого они типа. |
||
11 окт 12, 15:24 [13303183] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
есть 2 точки с координатами.....знаем координаты обоих точек......какая самая ближняя -знаем и расстояние мужду ними знаем..... |
11 окт 12, 15:26 [13303196] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
что то ясно......... |
||||
11 окт 12, 15:26 [13303203] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47063 |
А дальше-то что?! P.S. Glory Вам написал, как получить точку из пары полей таблицы. СлабО так же сделать? |
||||
11 окт 12, 15:26 [13303204] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
У вас 2 таблицы. В каждой из которых _множество точек_. Поймите это уже. |
||
11 окт 12, 15:27 [13303206] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
use TerminalData declare @t as table (id int, SpatialLocation geography) INSERT INTO @t SELECT nID, ('POINT('+CONVERT(varchar, dbLon) +' '+ CONVERT(varchar, dbLat) +')' ) FROM AW_TrackLast DECLARE @g as table (id int,SpatialLocation2 geography) INSERT INTO @g SELECT nID, ('POINT('+CONVERT(varchar, dbLon) +' '+ CONVERT(varchar, dbLat) +')' ) FROM AW_TrackLast вот как то так? |
11 окт 12, 15:29 [13303232] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Вы раньше писали запросы, в которых участвовало несколько таблиц ? |
||
11 окт 12, 15:31 [13303244] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
да старался.......но не такой сложности а что не правильно пишу?не мастер как говориться..не судите строго |
||||
11 окт 12, 15:32 [13303265] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Вот напишите запрос из ваших двух таблиц, который для каждой записи 1ой таблицы выберет запись(или записи) из 2ой таблицы, которые вы собираетесь сравнить. |
||
11 окт 12, 15:40 [13303329] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
declare @x table(dbLon float, dbLat float) insert @x values(106.620165, 10.746475) insert @x values(153.095160, -27.377213) insert @x values(0.000000, 0.000000) insert @x values(22.952630, 40.599135) insert @x values(114.079980, 22.547512) insert @x values(114.080272, 22.547073) insert @x values(114.037833, 22.543650) insert @x values(-115.405117, 32.622633) insert @x values(114.079867, 22.548733) insert @x values(106.536433, 21.013733) insert @x values(100.572567, 13.728350) insert @x values(400.039067, 3.539083 ) DECLARE @g geography = 'POINT(-121.626 47.8315)'; select *, x.ToString(), x.STDistance(@g)/1000 as Rasstoanie from ( select * ,geography::STPointFromText('POINT('+STR(dbLon,20,10)+' '+ STR(dblat,20,10)+')' , 4326) as x from @x ) as a ORDER BY x.STDistance(@g) все никак не получается |
11 окт 12, 20:15 [13304849] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Если ничего не менять, то ничего и не получится |
||
11 окт 12, 22:21 [13305264] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
а left join пробую что то не получается |
||||
12 окт 12, 07:42 [13306012] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
declare @x table(dbLon float, dbLat float) insert @x values(106.620165, 10.746475) insert @x values(153.095160, -27.377213) insert @x values(0.000000, 0.000000) insert @x values(22.952630, 40.599135) insert @x values(114.079980, 22.547512) insert @x values(114.080272, 22.547073) insert @x values(114.037833, 22.543650) insert @x values(-115.405117, 32.622633) insert @x values(114.079867, 22.548733) insert @x values(106.536433, 21.013733) insert @x values(100.572567, 13.728350) insert @x values(400.039067, 3.539083 ) declare @g table(dbLon float, dbLat float) insert @g values(104.620165, 10.746475) insert @g values(156.095160, -27.377213) insert @g values(0.200000, 0.000000) insert @g values(22.952630, 40.599135) insert @g values(112.079980, 22.547512) insert @g values(113.080272, 22.547073) insert @g values(114.037833, 22.543650) insert @g values(-116.405117, 32.622633) insert @g values(117.079867, 22.548733) insert @g values(108.536433, 21.013733) insert @g values(109.572567, 13.728350) insert @g values(406.039067, 3.539083 ) SELECT ('POINT('+CONVERT(varchar, dbLon) +' '+ CONVERT(varchar, dbLat) +')' ) FROM AW_TrackLast select *, x.ToString(), x.STDistance(@g)/1000 as Rasstoanie from ( select * ,geography::STPointFromText('POINT('+STR(dbLon,20,10)+' '+ STR(dbLat,20,10)+')' , 4326) as x from @x ) as a что я делаю не правильно?что то запутался... |
12 окт 12, 08:29 [13306070] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Ваша манера постить один и тот же код с одним и тем же вопросом очень напоминает недавнего автора с заправками машины Оставьте в покое geography. Сосредоточтесь на написании запроса, который просто вернет нужные вам записи в том виде, в каком они есть сейчас в таблице. |
||
12 окт 12, 09:32 [13306243] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47063 |
![]() |
||
12 окт 12, 09:42 [13306285] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
не понял........... |
||||
12 окт 12, 14:58 [13308867] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47063 |
|
||||
12 окт 12, 15:01 [13308891] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47063 |
Просто удивляюсь Вашему удивлению. |
||||
12 окт 12, 15:03 [13308921] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
и все же актуально...давайте ближе к теме...... |
12 окт 12, 15:04 [13308926] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
хочу доделать а знаний не хватает... |
||
12 окт 12, 15:05 [13308935] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
Напишите этот запрос в 100 разных форумов по 100 раз. И будет вам счастье. |
||
12 окт 12, 15:09 [13308957] Ответить | Цитировать Сообщить модератору |
sigor_i Member Откуда: Сообщений: 40 |
помогите я отстану!!!!!!!!ПО-МО- ГИ ТЕ |
||||
12 окт 12, 15:17 [13309022] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
declare @t1 table(f1 varchar(10)) declare @t2 table(f2 varchar(10)) insert @t1 values('Point1') insert @t1 values('Point2') insert @t1 values('Point3') insert @t1 values('Point4') insert @t1 values('Point5') insert @t2 values('Point11') insert @t2 values('Point12') insert @t2 values('Point13') insert @t2 values('Point14') insert @t2 values('Point15') Напишите запрос, который выведет, какие точки с какими надо сравнить |
12 окт 12, 15:22 [13309067] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 2 [3] 4 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |