Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работает ли подобный запрос? 
V
    Опции темы
Lunatikus
Дата 22.8.2007, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



немного упростил условие во втором запросе для простоты восприятия
Код

ADOQuery1.SQL.text:='UPDATE DEAL SET ost=:ost WHERE uni=:uni AND data=CONVERT(DATETIME,FLOOR(CONVERT(DATETIME,GETDATE())))';
ADOQuery2.SQL.text:='SELECT UNIVERS.uni,OST.ost FROM UNIVERS,OST,SCLAD WHERE UNIVERS.art=OST.art AND OST.ID_SCLAD=SCLAD.ID_SCLAD';
ADOQuery2.Open;
while not ADOQuery2.eof do
        begin
        ADOQuery1.parameters.parambyname('uni').value:=ADOQuery2.fields[0].asstring;
        ADOQuery1.parameters.parambyname('ost').value:=ADOQuery2.fields[1].asstring;
        ADOQuery1.execSQL;
        ADOQuery2.next;
        end;


так можно обойтись без двух и более таблиц в условии апдейта.как мало я знаю...приходится вот такими грубыми методами,хотя,по-хорошему, надо делать все в одном запросе.Стопудово можно составить,но время поджимает и приходится довольствоваться такими вариантами.


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
kobra
Дата 22.8.2007, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 5
Всего: 9



люди, ауууууу
веть я с самого начала написал рабочий запрос. а вместо того чтоб протестить его просто игнорировали. 
ну дело ваше. мучаитес на здоровье

Это сообщение отредактировал(а) kobra - 22.8.2007, 15:18
PM MAIL   Вверх
Lunatikus
Дата 22.8.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



неправда!я не игнорил,я по нему даже переспросил тебя,а вот дальше ты промолчал и я решил пока в сторону его отложить-не получилось слету под свою ситуацию его подстроить
чтото не выходит подстроить под свою структуру таблиц...слишком запутанные связи,блин
вот таблицы:
DEAL(данные по остаткам продукции на складе по каждому универсальному артикулу на каждый день)
data,
uni,
ost

OST(данные по остаткам каждого обычного артикула(одному универсальному соответствует несколько обычных) на текущую дату по складам)
art,
ost,
id_sclad

SCLAD(справочник складов)
id_sclad
name_sclad

UNIVER(справочник универсальных артикулов)
uni
art

работаем только со складом с названием "Бла".
Надо обновить остатки в таблице DEAL на текущий день.

Если будет желание,можешь проверить.Я еще попытаюсь осбрать чтото по схеме,предложенной тобой,но хз-хз...

Это сообщение отредактировал(а) Lunatikus - 22.8.2007, 15:32


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
kobra
Дата 22.8.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 5
Всего: 9



Lunatikus выложи скрипт создания таблиц и заполнения (пару троику строк).
завтра наверняка будет врея один запрос состряпать.
PM MAIL   Вверх
Akina
Дата 22.8.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 25
Всего: 454



Цитата(Lunatikus @  22.8.2007,  14:31 Найти цитируемый пост)
Если искать там по указанным тобой словам выдается множество статей

А если воспринимать то, что мной написано, как пункты дерева статей (заголовки подразделов)?


Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  1.gif 11,64 Kb


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Lunatikus
Дата 22.8.2007, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



ну...вот в простом виде на три строки в каждой таблице:


Код

CREATE TABLE DEAL(data datetime NULL,uni varchar[30] NULL,ost float NULL);
CREATE TABLE OST(art varchar[30] NULL,ost float NULL,id_sclad integer NULL);
CREATE TABLE UNIVER(uni varchar[30] NULL,art varchar[30] NULL);
CREATE TABLE SCLAD(id_sclad integer NULL,name_sclad varchar[30] NULL);

INSERT INTO DEAL(data,uni,ost)                 VALUES(21.08.2007,first,10);
INSERT INTO DEAL(data,uni,ost)                 VALUES(22.08.2007,second,15);
INSERT INTO DEAL(data,uni,ost)                 VALUES(23.08.2007,first,25);

INSERT INTO OST(art,ost,id_sclad)             VALUES(first1,100,1);
INSERT INTO OST(art,ost,id_sclad)             VALUES(first2,30,1);
INSERT INTO OST(art,ost,id_sclad)             VALUES(second2,20,2);

INSERT INTO UNIVER(uni,art)                      VALUES(first,first1);
INSERT INTO UNIVER(uni,art)                      VALUES(first,first2);
INSERT INTO UNIVER(uni,art)                      VALUES(second,second2);

INSERT INTO SCLAD(id_sclad,name_sclad) VALUES(1,Bla);
INSERT INTO SCLAD(id_sclad,name_sclad) VALUES(2,Mur);
INSERT INTO SCLAD(id_sclad,name_sclad) VALUES(3,Kva);

вроде все


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Lunatikus
Дата 22.8.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 503
Регистрация: 29.6.2007

Репутация: 2
Всего: 6



Цитата(Akina @  22.8.2007,  15:49 Найти цитируемый пост)
А если воспринимать то, что мной написано, как пункты дерева статей (заголовки подразделов)?

тогда все получается просто шоколадно.Я ступил в том,что не понял,о чем речь.Я никогда еще не работал со справкой в MS SQL Srv.Только после твоего скрина понял,о чем ты.А раньше думал,что отсылаешь в инет на сайт msdn.com.Там же тоже поисковая система.А теперь нашел,где был недочет,от как:

Код

UPDATE t1 SET t1.a=t2.a FROM t1,t2,t3 WHERE t2.b=t3.b AND <любые другие условия на указанные в FROM'е таблицы>


попробовал,все получилось!И время выполнения даже уменьшилось раза в два.


--------------------
TheSin - небольшое игровое сообщество взрослых и молодых(L2,WoW,Aion,RFonline and other not mmorpg,not computer games).
сайт гильдии
PM MAIL   Вверх
Idsa
Дата 22.8.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

Репутация: нет
Всего: 62



Как же просто... smile


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
Vit
Дата 22.8.2007, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 5
Всего: 207



Есть ещё один синтаксис для сложных Update:

Код

Update Table1
Set MyField=t2.Myfield, MyAnotherField=t3.MyAnotherField
From Table1 as t1
Inner join Table2 as t2 on t1...=t2...
Left outer join Table3 as t3 on t1...=t3...



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.1132 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.