同じテーブル内のある行から別の行にデータをコピーするのに苦労しています。基本的には、[I/O#]
という列が'Client1'
と等しい場合がありますが、列を'Client2'
と同じにするには、Client1のデータが消去されていなければなりません。つまり、Client1
に関連付けられたデータを保持します。 。 同じテーブル内のある行から別の行にデータをコピーするSQL
$PrevIO
と
$IO
はすでに私のPHPファイルで定義されているところで
$sql_UPDATE_query ="UPDATE [$connectionInfo[Database]].[dbo].[form_record]
SET
[Last_Edit] = newdata.[Last_Edit],
[User_Name] = newdata.[User_Name],
[Computer_Name] = newdata.[Computer_Name],
[form_name] = newdata.[form_name],
[Date] = newdata.[Date],
[facility] = newdata.[facility],
[Count] = newdata.[Count],
[Start_Time] = newdata.[Start_Time],
[Stop_Time] = newdata.[Stop_Time],
[MW/Hrs_Start] = newdata.[MW/Hrs_Start],
[MW/Hrs_Stop] = newdata.[MW/Hrs_Stop],
[M³] = newdata.[M³],
[MCF] = newdata.[MCF],
[Litres] = newdata.[Litres],
[Description] = newdata.[Description],
[Lock] = newdata.[Lock]
FROM
(
SELECT
[Last_Edit],
[User_Name],
[Computer_Name],
[form_name],
[Date],
[facility],
[Count],
[Start_Time],
[Stop_Time],
[MW/Hrs_Start],
[MW/Hrs_Stop],
[M³],
[MCF],
[Litres],
[Description],
[Lock]
FROM [$connectionInfo[Database]].[dbo].[form_record]
WHERE
[I/O#] = '$PrevIO'
) newdata
WHERE
[I/O#] = '$IO'";
(ちょうどそれを示すされていない)ので、それはどこのエラーではありません嘘。
今、$PrevIO='Client1'
と$IO='Client2
としましょう。 Client1に属しているテーブル[form_record]
のすべてのデータ(行)を属性化してClient2にコピーしてから、Client1を削除するか、それ以上に単純に名前を置き換えるだけですが、皆さんはよく知っています。私はnewdata
が同じテーブルform_record
のエイリアステーブルとして使用できると思ったが、うまくいかないようだ。
私はMicrosoft SQL 2005 Serverを使用しています。
をそれは、次のエラーメッセージが書かれています:エラー: '*' の近くに不正な構文を。 query ... – Andrew
はい、「*** newdata.field = UPD.field ***」を条件に置き換える必要があります。 –