Thanks John, that's what I thought too... My positioning on a row is dependent on 2 values, and without any better knowledge of SQLite I've tried implementing this:
Update Parameter set ParameterValue = (select NewParams.parametervalue from Scenario, Link, Catchment, FunctionalUnit, FunctionalUnitDefinition, StandardFU, Parameter, NewParams where Scenario.ScenarioID = 1004 and Scenario.NetworkID = Link.NetworkID and Link.LinkID = Catchment.LinkID and FunctionalUnit.CatchmentID = Catchment.CatchmentID and FunctionalUnit.FunctionalUnitDefinitionID = FunctionalUnitDefinition.FunctionalUnitDefinitionID and FunctionalUnit.FunctionalUnitID = StandardFU.StandardFUID and StandardFU.RainfallRunoffModelID = Parameter.ModelID and Catchment.Name = NewParams.Subcatchments and FunctionalUnitDefinition.Name = NewParams.FU_name and Parameter.Parameter = NewParams.parameter) Where Parameter.ModelID = (select Parameter.ModelID from Scenario, Link, Catchment, FunctionalUnit, FunctionalUnitDefinition, StandardFU, Parameter, NewParams where Scenario.ScenarioID = 1004 and Scenario.NetworkID = Link.NetworkID and Link.LinkID = Catchment.LinkID and FunctionalUnit.CatchmentID = Catchment.CatchmentID and FunctionalUnit.FunctionalUnitDefinitionID = FunctionalUnitDefinition.FunctionalUnitDefinitionID and FunctionalUnit.FunctionalUnitID = StandardFU.StandardFUID and StandardFU.RainfallRunoffModelID = Parameter.ModelID and Catchment.Name = NewParams.Subcatchments and FunctionalUnitDefinition.Name = NewParams.FU_name and Parameter.Parameter = NewParams.parameter) and Parameter.Parameter = (select Parameter.Parameter from Scenario, Link, Catchment, FunctionalUnit, FunctionalUnitDefinition, StandardFU, Parameter, NewParams where Scenario.ScenarioID = 1004 and Scenario.NetworkID = Link.NetworkID and Link.LinkID = Catchment.LinkID and FunctionalUnit.CatchmentID = Catchment.CatchmentID and FunctionalUnit.FunctionalUnitDefinitionID = FunctionalUnitDefinition.FunctionalUnitDefinitionID and FunctionalUnit.FunctionalUnitID = StandardFU.StandardFUID and StandardFU.RainfallRunoffModelID = Parameter.ModelID and Catchment.Name = NewParams.Subcatchments and FunctionalUnitDefinition.Name = NewParams.FU_name and Parameter.Parameter = NewParams.parameter) However my results are the same with this attempt at row positioning. Both of the select statements used in the WHERE expression do retturn valid records. Any more hints? Rob -----Original Message----- From: John Stanton [mailto:[EMAIL PROTECTED] Sent: Friday, 8 June 2007 2:48 PM To: sqlite-users@sqlite.org Subject: Re: [sqlite] Syntax help with UPDATE in SQLite Database Browser You don't seem to be positioning on a row in the Parameter table with a WHERE clause. Ellis Robin (Bundaberg) wrote: > Could I please get some help on the syntax required to perform my > UPDATE based on a selection from multiple tables? I've been through > the archives but can't seem to make much sense of the examples given. > > I have a table containing 'new' paramater values, I need to update the > relevant records in the 'existing' parameter table, however my > selection is based on a handful of tables. Here's the selection I run > to view my old and new parameters side by side, this works fine: > > select Scenario.ScenarioID, Scenario.NetworkID, Link.LinkID, > Catchment.CatchmentID,Catchment.Name, FunctionalUnit.FunctionalUnitID, > FunctionalUnitDefinition.Name, StandardFU.RainfallRunoffModelID, > Parameter.Parameter, Parameter.ParameterValue, > NewParams.parametervalue from Scenario, Link, Catchment, > FunctionalUnit, FunctionalUnitDefinition, StandardFU, Parameter, > NewParams where Scenario.ScenarioID = 1004 and Scenario.NetworkID = > Link.NetworkID and Link.LinkID = Catchment.LinkID and > FunctionalUnit.CatchmentID = Catchment.CatchmentID and > FunctionalUnit.FunctionalUnitDefinitionID = > FunctionalUnitDefinition.FunctionalUnitDefinitionID and > FunctionalUnit.FunctionalUnitID = StandardFU.StandardFUID and > StandardFU.RainfallRunoffModelID = Parameter.ModelID and > Catchment.Name = NewParams.Subcatchments and > FunctionalUnitDefinition.Name = NewParams.FU_name and > Parameter.Parameter = NewParams.parameter > > However when I use this selection to update the relevent field in the > parameters table I don't get a 'correct' update, instead I get the > first value encountered in the NewParams table over writing ALL of the > old parameter values. Here's my syntax: > > Update Parameter set ParameterValue = (select NewParams.parametervalue > from Scenario, Link, Catchment, FunctionalUnit, > FunctionalUnitDefinition, StandardFU, Parameter, NewParams where > Scenario.ScenarioID = 1004 and Scenario.NetworkID = Link.NetworkID and > Link.LinkID = Catchment.LinkID and FunctionalUnit.CatchmentID = > Catchment.CatchmentID and FunctionalUnit.FunctionalUnitDefinitionID = > FunctionalUnitDefinition.FunctionalUnitDefinitionID and > FunctionalUnit.FunctionalUnitID = StandardFU.StandardFUID and > StandardFU.RainfallRunoffModelID = Parameter.ModelID and > Catchment.Name = NewParams.Subcatchments and > FunctionalUnitDefinition.Name = NewParams.FU_name and > Parameter.Parameter = NewParams.parameter) > > Can anyone shed some light on this for me? I've tried adding more > WHERE statements after the nested selection, but with no better results. > > Thanks > > Rob > > Robin Ellis > Natural Resources & Water > PO Box 1167 > Bundaberg QLD 4670 > Ph: +617 4131 5771 > Fax: +617 4131 5823 > > > ********************************************************************** > ** The information in this email together with any attachments is > intended only for the person or entity to which it is addressed and > may contain confidential and/or privileged material. > Any form of review, disclosure, modification, distribution and/or > publication of this email message is prohibited, unless as a necessary > part of Departmental business. > If you have received this message in error, you are asked to inform > the sender as quickly as possible and delete this message and any > copies of this message from your computer and/or your computer system > network. > ********************************************************************** > ** > > ------------------------------------------------------------------------ ----- To unsubscribe, send email to [EMAIL PROTECTED] ------------------------------------------------------------------------ ----- ----------------------------------------------------------------------------- To unsubscribe, send email to [EMAIL PROTECTED] -----------------------------------------------------------------------------