I can think of several answers to your last question;
 
#1 Your mileage may vary
#2 Take the easiest way for you and see it works well.
#3 Since SQL wasn't designed for vector math do it in your program -- probably 
MUCH clearer to anybody (including yourself) in the future.  It shouldn't take 
more than about 30 minutes to code this up.  I was tempted to do it myself just 
for the exercise...
 
 
Michael D. Black
Senior Scientist
Advanced Analytics Directorate
Northrop Grumman Information Systems
 

________________________________

From: sqlite-users-boun...@sqlite.org on behalf of peterwinson1
Sent: Fri 7/23/2010 9:37 PM
To: sqlite-users@sqlite.org
Subject: EXTERNAL:Re: [sqlite] Help with complex UPDATE question




Jim, I see what you mean.  Would it be faster then if I read the from the
table, do the math in a program, and then insert the values back into the
table?  Or would it faster to amend the table as you suggest and use SQL
UPDATE? I wonder.




Jim Morris-4 wrote:
>
> AYou must add additional data to the rows so you can refer to them
> unambiguously.
>
> table1 (KEY, COL1, ord)
>
> 0, 1,1
> 0, 2,2
> 1, 3,1
> 1, 4,2
> 2, 5,1
> 2, 6,2
> 3, 7,1
> 3, 8,2
>
>
> On 7/23/2010 12:16 PM, peterwinson1 wrote:
>> Jim you maybe correct that I don't have enough data to unambiguously
>> identify
>> the rows.  But just in case I was not very clear the first time.
>>
>> What I want to do is take the COL1 values of the first 2 rows [1, 2] and
>> subtract them from the COL1 values, two rows at a time.  so [1, 2] - [1,
>> 2],
>> then [3, 4] - [1, 2], then [5, 6] - [1, 2], and finally [7, 8] - [1, 2].
>> The question is can I do this just using SQL?
>>
>>
>>
>>
>> Jim Morris-4 wrote:
>>   
>>> What you are trying to do is unclear to me.  It seems that table1
>>> doesn't have enough data to unambiguously identify the rows.
>>>
>>> On 7/23/2010 8:03 AM, peterwinson1 wrote:
>>>     
>>>> Thanks Eric and Alan for your help.  I tried to apply your code to my
>>>> problem
>>>> and it works to a limited extent because the problem is more
>>>> complicated
>>>> than the example I gave in the post.  I tries to simplify my exact
>>>> problem
>>>> but that didn't work out.  So here is the problem that I trying to
>>>> solve.
>>>>
>>>> table1 (KEY, COL1)
>>>>
>>>> 0, 1
>>>> 0, 2
>>>> 1, 3
>>>> 1, 4
>>>> 2, 5
>>>> 2, 6
>>>> 3, 7
>>>> 3, 8
>>>>
>>>> table2 (KEY, X, Y)
>>>>
>>>> 0, 0, 0
>>>> 1, 0, 1
>>>> 2, 1, 0
>>>> 3, 1, 1
>>>>
>>>> What I would like to do is, like before, subtract COL1 from COL1 where
>>>> table1.KEY = 0 and WHERE table1.KEY is IN (SELECT table2 WHERE X=0).
>>>> But
>>>> I
>>>> want to do a vector subtraction instead of a scalar subtraction.
>>>>
>>>> So far I have
>>>>
>>>> UPDATE table1 set COL1 = COL1 - (SELECT COL1 WHERE table1.KEY = 0)
>>>> WHERE
>>>> table1.KEY IN (SELECT table2 WHERE X=0)
>>>>
>>>> The result I would like to get is
>>>>
>>>> table1
>>>>
>>>> 0, 0 //(1 - 1)
>>>> 0, 0 //(2 - 2)
>>>> 1, 2 //(3 - 1)
>>>> 1, 2 //(4 - 2)
>>>> 2, 5
>>>> 2, 6
>>>> 3, 7
>>>> 3, 8
>>>>
>>>> Instead I get
>>>>
>>>> 0, 0 //(1 - 1)
>>>> 0, 1 //(2 - 1)
>>>> 1, 2 //(3 - 1)
>>>> 1, 3 //(4 - 1)
>>>> 2, 5
>>>> 2, 6
>>>> 3, 7
>>>> 3, 8
>>>>
>>>> Is this possible in SQL?
>>>>
>>>>
>>>> peterwinson1 wrote:
>>>>
>>>>       
>>>>> Hello,
>>>>>
>>>>> I have a some what complex question about UPDATE.  I have the
>>>>> following
>>>>> table
>>>>>
>>>>> table1 (KEY, COL1)
>>>>>
>>>>> 0, 1
>>>>> 1, 2
>>>>> 2, 3
>>>>> 3, 4
>>>>>
>>>>> What I would like to do is to UPDATE COL1 by subtracting the COL1
>>>>> value
>>>>> where KEY = 0 from the COL1 value of the current row so that the
>>>>> result
>>>>> would be.
>>>>>
>>>>> 0, 0
>>>>> 1, 1
>>>>> 2, 2
>>>>> 3, 3
>>>>>
>>>>> Can this be done in SQL?  It does not have to be one UPDATE/SELECT
>>>>> statement.
>>>>>
>>>>> Thank you
>>>>> pw
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>         
>>>>
>>>>       
>>> _______________________________________________
>>> sqlite-users mailing list
>>> sqlite-users@sqlite.org
>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>>
>>>
>>>     
>>   
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
>

--
View this message in context: 
http://old.nabble.com/Help-with-complex-UPDATE-question-tp29239594p29252817.html
Sent from the SQLite mailing list archive at Nabble.com.

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to