Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Вниз

Проблема запроса   Найти похожие ветки 

 
VadimSpb   (2005-11-24 10:42) [0]

Суть вопроса:
Запрос идет из Д7 в базу Аccess. Есть Табл.1 с полем ID, которое соответствует напр. стоимости услуги в Табл2. В Табл.2 Есть такой же ID с названием услуги и ее стоимостью. Также в Табл.1 есть поле Сумма. Нажимаем на кнопку в Д7 и увеличиваем значение в поле Сумма для:
1. Всех клиентов
2. Выбранных по какому-то критерию (пол и т.д.)

Проблема вроде не сложна, но Access не поддерживает скалярные запросы!


 
Sergey13 ©   (2005-11-24 10:59) [1]

Эх и путанно ты объясняешь, ИМХО. Попробуй попроще.
Вообще записи изменяются командой Update у которой могут быть а могут и не быть условия применения (кляуза Where).


 
msguns ©   (2005-11-24 11:07) [2]

А можно все тоже самое, только не на клоунском языке ?


 
VadimSpb   (2005-11-24 11:40) [3]

Попробую иначе.
Как запросом изменить  числовое значение в одной таблице путем суммирования его со значением из другой таблицы. Access не поддерживает подзапросы в предложении SET в команде Update.


 
Sergey13 ©   (2005-11-24 11:43) [4]

Т.е.
Update Table1 set F1=(select F2 from Table2 where Table1.Id=Table2.id)
не проходит?


 
msguns ©   (2005-11-24 12:07) [5]

>VadimSpb   (24.11.05 11:40) [3]
>Попробую иначе.
>Как запросом изменить  числовое значение в одной таблице путем суммирования его со значением из другой таблицы. Access не поддерживает подзапросы в предложении SET в команде Update.

Вот, уже лучше.
Для подобных "штучек" используются связки. Кроме того, в акцесе позволительно указывать после Update не только целевую (где будут изменения) таблицу, но и через запятую другую таблицу (ы), данные из которой(ых) будут участвовать в обновлении.


 
ANB ©   (2005-11-24 12:09) [6]


> Т.е.
> Update Table1 set F1=(select F2 from Table2 where Table1.
> Id=Table2.id)
> не проходит?

Так и в оракле не всегда проходит.


 
Sergey13 ©   (2005-11-24 12:15) [7]

2 [6] ANB ©   (24.11.05 12:09)
> Так и в оракле не всегда проходит.
При связи 1:1 всегда проходит. Да и не давал я кода. Я спрашивал про принцып.


 
msguns ©   (2005-11-24 12:15) [8]

Пример "связанного" апдэйта

UPDATE FONDSR AS R
  INNER JOIN Fonds IN "e:\DMsArch\FondsCmp\AlexDB\Data.mdb" AS TA
    ON (R.Letter=TA.Letter) AND (R.FondNumber=TA.FondNumber) AND
          (R.FondType=TA.FondType) AND (R.Category=TA.Category)
  SET R.FLT = 0, R.FLA = 1, R.AFID = TA.FID, R.AArcID = TA.ArcID,
         R.ACountry = TA.Country, R.ASDate = TA.StartDate, R.AEDate = TA.EndDate,
         R.AFSize = TA.FondSize, R.AQDI = TA.DontInvent,
         R.AQMF = TA.Microfished, R.AQS =  Secret, R.AAvl = TA.Availability,
         R.APassT = TA.PassTo, R.APassL =  TA.PassLette, R.APassN = TA.PassNumber,
         R.AJoinL =  TA.JoinLetter, R.AJoinN =  TA.JoinNumber, R.AUtil =  TA.UtilDate,
         R.ALossId =  TA.LossCauseId, R.ALossDt =  TA.LossDate, R.ALossDc =  TA.LossDoc;


 
msguns ©   (2005-11-24 12:20) [9]

Прошу прощения, в [5] вместо

позволительно указывать после Update не только целевую (где будут изменения) таблицу, но и через запятую другую таблицу (ы), данные из которой(ых) будут участвовать в обновлении.

следует читать:

позволительно указывать после Update не только целевую (где будут изменения) таблицу, но и через JOIN другую таблицу (ы), данные из которой(ых) будут участвовать в обновлении.


 
VadimSpb   (2005-11-24 13:52) [10]

Спасибо, все замечательно работает [8]



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
1-1131611361
JurMan
2005-11-10 11:29
2005.12.11
Как обратиться к СОМ-порту?


5-1116406147
Priest
2005-05-18 12:49
2005.12.11
Свойство ComponentState у TForm в DreamDesigner


14-1132341956
Separator
2005-11-18 22:25
2005.12.11
Firewall


3-1130396036
oleggar
2005-10-27 10:53
2005.12.11
clipper indexing


1-1131975140
dzmitry_li
2005-11-14 16:32
2005.12.11
Вызов событий Combobox созданных runtime





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский