|
|
|
Молю, помогите, надеюсь на Glory
|
|||
|---|---|---|---|
|
#18+
Повторяюсь уже, но не получилось,задача та же самая но с комментариями,небольшие пояснения,в отличие от примера в ссылке http://www.sql.ru/articles/article.php?id=153 у меня, ничего суммировать не надо, просто если было ---------------------------------------------- Имя |Телефон | Дом ---------------------------------------------- Катя |12548 | 14 ---------------------------------------------- Катя |25644 | 10 ---------------------------------------------- Оля |25466 | 45 ---------------------------------------------- то хочется получить ----------------------------------------------------------------- Имя |Телефон1 |Телефон2 | Дом1| Дом1 ----------------------------------------------------------------- Катя |12548 | 25644 | 14 | 10 ----------------------------------------------------------------- Оля |25466 | ------ | 45 |--- ------------------------------------------------------------------ если имеет значение,для простоты Оль как Кать по две записи ,т..е известно количетсво Телефон1,Телефон1 ну количество столбцов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2002, 15:56 |
|
||
|
Молю, помогите, надеюсь на Glory
|
|||
|---|---|---|---|
|
#18+
create table tbl ( nam varchar(10) not null, tel char(5) not null, dom int not null ) insert into tbl values ('kata','12345',11) insert into tbl values ('kata','23456',12) insert into tbl values ('sahsa','34567',13) insert into tbl values ('sahsa','45678',14) insert into tbl values ('gena','56789',15) select * from tbl select t.nam, t.tel as tel1, tt.tel as tel2, t.dom as dom1,tt.dom as dom2 from tbl t inner join tbl tt on t.nam=tt.nam and (t.tel<tt.tel or t.dom<tt.dom) where tt.tel is not null and tt.dom is not null union all select t.nam, t.tel as tel1, tt.tel as tel2, t.dom as dom1,tt.dom as dom2 from tbl t left outer join tbl tt on t.nam=tt.nam and (t.tel<>tt.tel or t.dom<>tt.dom) where tt.tel is null and tt.dom is null ----------------------------------------------- nam tel dom kata 12345 11 kata 23456 12 sahsa 34567 13 sahsa 45678 14 gena 56789 15 (5 row(s) affected) nam tel1 tel2 dom1 dom2 kata 12345 23456 11 12 sahsa 34567 45678 13 14 gena 56789 15 (3 row(s) affected) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2002, 20:55 |
|
||
|
Молю, помогите, надеюсь на Glory
|
|||
|---|---|---|---|
|
#18+
code: Должно получиться наподобие следующего: DECLARE @t TABLE ( [Name] varchar(10) NOT NULL, [Phone] char(5) NOT NULL, [Street_No] int NOT NULL ) INSERT @t ([Name], [Phone], [Street_No]) VALUES ('Olia', '25466', 45) INSERT @t ([Name], [Phone], [Street_No]) VALUES ('Katia', '12548', 14) INSERT @t ([Name], [Phone], [Street_No]) VALUES ('Katia', '25644', 10) SELECT t1.* FROM ( SELECT t.[Name], t.[Phone], MAX(t1.[Street_No]) AS [Street_No] FROM ( SELECT t.[Name], MAX(t.[Phone]) AS [Phone] FROM @t t GROUP BY t.[Name] ) t INNER JOIN @t t1 ON t.[Name] = t1.[Name] AND t.[Phone] = t1.[Phone] GROUP BY t.[Name], t.[Phone] ) x INNER JOIN ( SELECT t1.[Name], t1.[Phone] AS [Phone1], t2.[Phone] AS [Phone2], t1.[Street_No] AS [Street_No1], t2.[Street_No] AS [Street_No2] FROM @t t1 LEFT OUTER JOIN @t t2 ON t1.[Name] = t2.[Name] AND (t1.[Phone] <> t2.[Phone] OR t1.[Street_No] <> t2.[Street_No]) ) t1 ON t1.[Name] = x.[Name] AND t1.[Phone1] = x.[Phone] AND t1.[Street_No1] = x.[Street_No] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2002, 21:26 |
|
||
|
Молю, помогите, надеюсь на Glory
|
|||
|---|---|---|---|
|
#18+
Спасибо мальчики, но только я наверное не до конца объяснила,а если у меня строк 12000,то получается в запрос всех так ручками и вводить Оль, Кать,.. я имела ввиду универсальный запрос который бы переформатировал таблицу, единственное что постоянно что строк всегда по две т.е две строки с Катей,две С Олей и т.д. и все столбцы в этих строках заполнены т.е. телефон, дом поэтому в конечной таблице из каждых двух строк должна получится одна где вся информация дублируетя т.е два телефона, два дома кроме имени имя одно Катя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2002, 05:11 |
|
||
|
Молю, помогите, надеюсь на Glory
|
|||
|---|---|---|---|
|
#18+
СПАСИБО! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2002, 07:22 |
|
||
|
Молю, помогите, надеюсь на Glory
|
|||
|---|---|---|---|
|
#18+
Ну вот, не дали перед девушкой "покрасоваться" ЗЫ 2Катя А вот если бы у таблицы был бы первичный ключ, то все было бы гораздо "красивее" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2002, 09:07 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32031033&tid=1822618]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
175ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 456ms |

| 0 / 0 |
