Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Синтаксис [MSSQL]


Ksan ©   (2006-10-16 17:47:00) 

есть некий селект возвращает записи плана

-------------------------
|id|dateS|dateE|Sum(pr)|
-------------------------

надо проабдейтить таблицу на Sum(pr) по условию равенства id, dateS, dateE,

что то не могу с синтаксисом разобраться никак  может кто делал знает ?


ЮЮ   (2006-10-17 11:24:00) [1]


> а ежели записи с таким ID еще нету ?
>

Был вопрос об "проабдейтить" :)
Для тех что нету, запрос на вставку нужен.

А ещё лучше избавиться нафиг от такой таблицы. Нафиг она нужна. если нужные данные можно получить запросом?


ANB   (2006-10-17 10:05:00) [2]


> ЮЮ ©   (17.10.06 03:21) [6]

а ежели записи с таким ID еще нету ?


ЮЮ   (2006-10-17 03:21:00) [3]

Y  UPDATE есть FROM, где можно запихать запрос любой сложости:

UPDATE
   TableName
 SET
   SumPr = q.SumPr
 FROM
   ( SELECT id, dateS, dateE, Sum(Pr) .SumPr
     FROM TableName
     WHERE ...
     GROUP  BY  id, dateS, dateE,
   ) q
    JOIN TableName t ON
      (q.Id = t.id) AND (q.dateS = t.dateS) AND (q.dateE = t.dateS)


ANB   (2006-10-16 18:38:00) [4]


> а условие ?

А на фига ? Все стираешь и перезаливаешь.


Ksan   (2006-10-16 18:29:00) [5]

+3
а условие ?
мне нужно не проабдейтить все записи :) а по условию проапдейтить нужную запись на нужную сумму


ANB   (2006-10-16 18:25:00) [6]

delete from tablename;

insert into tablename (id,dateS,dateE,Sum)
select id,dateS,dateE,Sum(pr) from . . .

:)

Ну или merge. Но его в MS SQL отродясь не было.


Ksan   (2006-10-16 18:23:00) [7]

у меня есть бааальшой запрос с групировкой который возвращает значица некий ответ ... точнее табличку ну или датасет :) кому что больше нравиться вида

-------------------------
|id|dateS|dateE|Sum(pr)|
-------------------------

т.е. есть поле идентификатора дата начала дата конца и сумма

мне нужно проабдейтить другую табличку на сумму по условию что идентификатор и даты равны

хочеться все это в одном запросе прописать типа
update into tablename
set sum =
from ...
where

вообщем не могу найти какой правильный синтаксис :(

по аналогии как инсерт селекта


Johnmen   (2006-10-16 17:54:00) [8]

Хм...хм...Это про что?


Наверх

Титульная страница Поиск, карта сайта Написать письмо