Главная страница
    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.042 c
11-1113926956
Zoom
2005-04-19 20:09
2005.12.11
Progress в статус бар формы


2-1132428043
Officeman
2005-11-19 22:20
2005.12.11
Edit1.text как запретить вводить буквы и разрешить цифры


14-1132697502
NightLord
2005-11-23 01:11
2005.12.11
Новая дыра в IE


4-1128481280
Rentgen
2005-10-05 07:01
2005.12.11
Изменить настройки БИОСа компьютера через RS232


5-1116849129
PavelP
2005-05-23 15:52
2005.12.11
Как получить список контролов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский