2

これは、私が正しい答えを得た選択ステートメントです:

select s_billing_cycle.Billing_cycle from s_billing_cycle 
join o_daily_lcsgeneration_copy on o_daily_lcsgeneration_copy.Location=s_billing_cycle.Location where o_daily_lcsgeneration_copy.Date between s_billing_cycle.From_Date and s_billing_cycle.To_Date

同じクエリを別のテーブルに更新している間、更新クエリの取得を使用してそれを行うことができませんでした:FROM句で更新するためにターゲットテーブル「o_daily_lcsgeneration_copy」を更新できません私が使用したクエリは次のとおりです:

update o_daily_lcsgeneration_copy  set o_daily_lcsgeneration_copy.Billing_cycle = (select s_billing_cycle.Billing_cycle from s_billing_cycle join o_daily_lcsgeneration_copy on o_daily_lcsgeneration_copy.Location=s_billing_cycle.Location where o_daily_lcsgeneration_copy.Date between s_billing_cycle.From_Date and s_billing_cycle.To_Date) 

助けて !!!

4

1 に答える 1

1

サブクエリでラップします(したがって、一時テーブルを作成します

UPDATE  o_daily_lcsgeneration_copy
SET     o_daily_lcsgeneration_copy.Billing_cycle = 
(
    SELECT Billing_cycle
    FROM
    (
        SELECT  s_billing_cycle.Billing_cycle
        FROM    s_billing_cycle
                INNER JOIN o_daily_lcsgeneration_copy
                    ON o_daily_lcsgeneration_copy.Location = s_billing_cycle.Location
        WHERE   o_daily_lcsgeneration_copy.DATE BETWEEN s_billing_cycle.From_Date
                AND s_billing_cycle.To_Date
    ) s
)

またはJOINテーブル

UPDATE  o_daily_lcsgeneration_copy a
        INNER JOIN s_billing_cycle b
            ON a.Location = b.Location
SET     a.Billing_cycle = b.Billing_cycle
WHERE   a.DATE BETWEEN b.From_Date AND b.To_Date
于 2012-11-06T06:24:32.187 に答える