Проблема с алиасом...

shurman
Дата: 15.10.2003 12:15:06
UPDATE f SET f.[mess_cnt]=f.[mess_cnt]-ds.cnt
FROM forums AS f
INNER JOIN
(SELECT [id] AS tid, forum FROM events AS t
INNER JOIN
(SELECT [theme],count(*) AS cnt FROM deleted) AS ds
ON ds.[theme]=t.[id]) AS tm
ON f.[id]=tm.[forum]

Error: The column prefix 'ds' does not match with a table name or alias name in the query.
Некто
Дата: 15.10.2003 12:31:19
Это проблемы с форматированием, IMHO:

UPDATE f SET f.[mess_cnt]=f.[mess_cnt]-tm.cnt 

FROM forums AS f
INNER JOIN ( SELECT [id] AS tid, forum , cnt
FROM events AS t
INNER JOIN (SELECT [theme],count(*) AS cnt FROM deleted) AS ds
ON ds.[theme]=t.[id]) AS tm
ON f.[id]=tm.[forum]
Glory
Дата: 15.10.2003 12:40:01
2shurman
Интересно вы соединяете таблицы. Этот запрос написан вручную или сгенерирован может какой программой ?
shurman
Дата: 15.10.2003 12:42:10
Всё спасибо разобрался.....
shurman
Дата: 15.10.2003 12:44:29
А зпрос написан вручную, а не сгенерирован... :)
Glory
Дата: 15.10.2003 12:47:43
А зачем везде в соединениях используются подзапросы ??
Чем это вызвано ?

ЗЫ
Просто интересно.
Некто
Дата: 15.10.2003 12:52:47
2 shurman

А зпрос написан вручную, а не сгенерирован... :)

Китайским способом, небось? Copy - Paste ? :-))
shurman
Дата: 15.10.2003 13:00:30
Мошть и китайским, зато работает.... :))

А как попроще-то можно .... А?
Glory
Дата: 15.10.2003 13:17:01
Хотя бы так

UPDATE f SET f.[mess_cnt]=f.[mess_cnt]-tm.cnt 

FROM forums AS f
INNER JOIN ( SELECT t.[id] AS tid, t.forum , count(*) AScnt
FROM events AS t
INNER JOIN deleted AS ds ON ds.[theme]=t.[id]
GROUP BY t.[id], t.forum ) AS tm
ON f.[id]=tm.[forum]
shurman
Дата: 15.10.2003 13:34:07
Да... что-то в этом есть... будем работать.....