powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом
12 сообщений из 12, страница 1 из 1
Помогите с запросом
    #32058840
Jcomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем есть таблица :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE TABLE [ForumMessages] (
	[id] [decimal]( 18 ,  0 ) IDENTITY ( 1 ,  1 ) NOT NULL ,
	[ForumID] [int] NOT NULL CONSTRAINT [DF_ForumMessages_ForumId] DEFAULT ( 0 ),
	[ThreadID] [int] NULL ,
	[ParentItemID] [decimal]( 18 ,  0 ) NULL ,
	[UserID] [int] NULL ,
	[Subject] [nvarchar] ( 100 ) NULL ,
	[Text] [text] NULL ,
	[NameUser] [nvarchar] ( 50 ) NULL ,
	[EmailUser] [nvarchar] ( 50 ) NULL ,
	[X] [nvarchar] ( 53 ) NULL ,
	[level] [int] NULL ,
	[sendEmail] [nvarchar] ( 50 ) NULL ,
	[userIP] [nvarchar] ( 50 ) NULL ,
	[Date] [smalldatetime] NOT NULL CONSTRAINT [DF_ForumMessages_Date] DEFAULT (getdate()),
	CONSTRAINT [PK_ForumMessages] PRIMARY KEY  NONCLUSTERED 
	(
		[id]
	)  ON [PRIMARY] 
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

Требуеться вывести все где ParentItemID не NULL, но сортировать по максимальной дате даного threadid .. это можно как - то запросом одним ??
...
Рейтинг: 0 / 0
Помогите с запросом
    #32058846
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
select * 
from ForumMessages
where ParentItemID is not null
order by Date
...
Рейтинг: 0 / 0
Помогите с запросом
    #32058862
Jcomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Akuz:
Не ну конечно я не такой твердолобый как тут крутяться, но и не полный дурак. Я такой запрос и сам могу написать.
Фича в том что надо сортировать по макс дате ответов, тоесть где max(Date) where threadid = текущему ..... вот так могу обяснить ... запросом немогу если бы мог не спришивал бы ...
...
Рейтинг: 0 / 0
Помогите с запросом
    #32058866
dao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
 select *,sort=(select max(Date) from ForumMessages sFM where sFM.threadid =mFM.id)
from ForumMessages mFM
where ParentItemID is not null
order by sort 

может так?
Только крайне не эфективно при большой выборке ..
Попробуйте через временные таблицы...
...
Рейтинг: 0 / 0
Помогите с запросом
    #32058877
Jcomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to dao:
Нет чет так не хочет в sort возвращает NULL
...
Рейтинг: 0 / 0
Помогите с запросом
    #32058883
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не очень понятно. Примером "что есть в таблицах" - "что надо получить" проще будет объяснить.
...
Рейтинг: 0 / 0
Помогите с запросом
    #32058903
Jcomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче как видно из таблицы .. это форум.
Вот хочеться отсоритровать нити по дате. Тоесть выводить "голову нити", но сортировать "головы" по дате "тел нити". Фу вот это я выдал.
Моржно конечно тригер написаить на инсерт, но мне интересно неужели нельзя просто запросом.
...
Рейтинг: 0 / 0
Помогите с запросом
    #32058931
Jcomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне не твечают почему ? :-) У меня есть варианты:
1) Так как такой принцип юзаеться на этом форуме, то это секрет фирмы.
2) Вопрос тупой и легкий всем впадло ответить.
3) Все настолько заняты что у них просто нет времени на это.
Господа ответьте тогда хотя бы какой пункт правильный ?
...
Рейтинг: 0 / 0
Помогите с запросом
    #32058954
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так что-ли ?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
set nocount on
CREATE TABLE #ForumMessages (
	[id] [decimal]( 18 ,  0 ) IDENTITY ( 1 ,  1 ) NOT NULL ,
	[ThreadID] [int] NULL ,
	[ParentItemID] [decimal]( 18 ,  0 ) NULL,
	[Date] [smalldatetime] NOT NULL CONSTRAINT [DF_ForumMessages_Date] DEFAULT (getdate()),
)

insert #ForumMessages values( 1 , NULL, '20020101')
insert #ForumMessages values( 2 ,  1 , '20020103')
insert #ForumMessages values( 3 ,  1 , '20020103')

insert #ForumMessages values( 4 , NULL, '20020101')
insert #ForumMessages values( 5 ,  4 , '20010202')
insert #ForumMessages values( 6 ,  4 , '20010203')

select *, sort=(select max(Date) from #ForumMessages sFM where sFM.ParentItemID= mFM.ThreadID and sFM.ParentItemID is not null)
from #ForumMessages mFM
where ParentItemID is null
order by sort 

drop table #ForumMessages
...
Рейтинг: 0 / 0
Помогите с запросом
    #32058964
Jcomp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почти.. вот так:

select *, sort=(select max([Date]) from ForumMessages sFM where sFM.ThreadID = mFM.ThreadID and sFM.ParentItemID is not null)
from ForumMessages mFM
where ParentItemID is null
order by sort desc

Ибо дерево у меня и parentItemId в условии не подходит.
Спасибо !!!
...
Рейтинг: 0 / 0
Помогите с запросом
    #32058975
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может я не въехал? подзапрос на каждую строку.....
а вот так не пойдет?
Код: plaintext
1.
2.
3.
4.
5.
6.
from (select * from #ForumMessages  where ParentItemID is null) t join
     (select ThreadID,max(Date) sort
      from #ForumMessages
      group by ThreadID) s
      on t.ThreadID=s.ThreadID
order by sort desc
...
Рейтинг: 0 / 0
Помогите с запросом
    #32058977
Фотография MiCe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
звыняюсь ... немного апшыпся...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select t.*,sort
from (select * from #ForumMessages  where ParentItemID is null) t join
     (select ParentItemID,max(Date) sort
      from #ForumMessages
      where ParentItemID is not null
      group by ParentItemID) s
      on t.ThreadID=s.ParentItemID
order by sort desc
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]