Погода: -12°C
  • Срочно помогите!

    не знаю как написать запрос на обновление таблицы:хммм:

    необходимо:
    в таблице Т изменить поле С1 на значение С1-С2
    где С2 поле из другой таблицы!

    необходима связь между таблицами по ключу

    --------------------------------------------
    такого изврата я еще никогда не делал
    помогите плиз очень надо!!!!

  • Приведенной инфы слишком мало для конкреного ответа. Хоть укажи СУБД, они же используют разные диалекты SQL...

    В общих чертах может вот это поможет (для SQL Server 2000):

    UPDATE titles
    SET ytd_sales = t.ytd_sales + s.qty
    FROM titles t, sales s
    WHERE t.title_id = s.title_id
    AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

    Или вот это:

    UPDATE titles
    SET ytd_sales =
    (SELECT SUM(qty)
    FROM sales
    WHERE sales.title_id = titles.title_id
    AND sales.ord_date IN (SELECT MAX(ord_date) FROM sales))
    FROM titles, sales

  • не вижу как это сделать в один запрос
    я бы сделал так.
    Tab1 : id1, C1
    Tab2: id2, C2

    select id1 id, C1,C2 from tab1, tab2
    where id1=id2

    Результат скидываем в таблицу tmp

    update tab1
    set C1=
    (select c1-c2 from tmp where id=id1);

    drop table tmp;

  • Как я понял из ТЗ должно быть примерно так.

    Tab1: id C1
    Tab2: id C2 id_tab1

    Update tab1
    Set C1=C1-(Select C2 from Tab2 Where tab1.id=id_tab1)

    Только обязательно нужно что бы каждому значению С1 соответствовало одно значение С2. А то ошибку выдаст.

  • А если сделать еще шаг:миг:

    Update tab1
    Set C1=C1-(Select sum(C2) from Tab2 Where tab1.id=id_tab1)

Записей на странице:

Перейти в форум

Модератор: