>>>>>>>>Are you talking about view in SQL Server or VFP? And how would a view help in this case?
>>>>>>>>
>>>>>>>I was thinking of SQL Server view, although it will work for VFP as well. We don't want to have calculated field in a table using UDF (as we need to base calculation on another table). The better solution is to use a view where this will be calculated.
>>>>>>
>>>>>>I have never, yet, used views in SQL Server. I will make a point to read and learn. Right now I am trying to make my app work on either SQL Server or VFP, using pretty much the same table structures and code. Thank you.
>>>>>
>>>>>
>>>>>Dmitry,
>>>>>
>>>>>This is an example how to add po_Freight and po_SalesTax calculated fields to PO, summing them from the invoice table
>>>>>
>>>>> create cursor po ;
>>>>> ( po_id I, ;
>>>>> po_vendor c(30), ;
>>>>> po_date D, ;
>>>>> po_amount Y ;
>>>>> )
>>>>>
>>>>> insert into po values (1, 'UT', date(), $100)
>>>>> insert into po values (2, 'Google', date()+1, $200)
>>>>>
>>>>> insert into po values (3, 'Microsoft', date()+2, $200)
>>>>>
>>>>> create cursor invoice ;
>>>>> ( inv_id I, ;
>>>>> inv_po_id I, ;
>>>>> inv_Freight Y, ;
>>>>> inv_SalesTax Y ;
>>>>> )
>>>>>
>>>>> insert into invoice values(1, 1, $20, $20)
>>>>> insert into invoice values(2, 1, $20, $20)
>>>>>
>>>>>
>>>>> insert into invoice values(3, 2, $20, $20)
>>>>> insert into invoice values(4, 2, $30, $30)
>>>>>
>>>>>
>>>>>
>>>>> select ;
>>>>> po_id, ;
>>>>> po_vendor, ;
>>>>> po_date, ;
>>>>> po_amount, ;
>>>>> nvl(po_Freight, $0) as po_Freight, ;
>>>>> nvl(po_SalesTax, $0) as po_SalesTax;
>>>>> from po ;
>>>>> left join ;
>>>>> ( select ;
>>>>> inv_po_id, ;
>>>>> sum(inv_Freight) as po_Freight, ;
>>>>> sum(inv_SalesTax) as po_SalesTax ;
>>>>> from invoice ;
>>>>> group by 1 ;
>>>>> ) X;
>>>>> on ( po_id == inv_po_id)
>>>>>
>>>>
>>>>Gregory, thank you very much!
>>>
>>>
>>>You're welcome. This would be the view. If only one PO is needed, you can add a parameter
>>>
>>>
>>> po_needed = 3
>>>
>>>
>>> select ;
>>> po_id, ;
>>> po_vendor, ;
>>> po_date, ;
>>> po_amount, ;
>>> nvl(po_Freight, $0) as po_Freight, ;
>>> nvl(po_SalesTax, $0) as po_SalesTax ;
>>> from po ;
>>> left join ;
>>> ( select ;
>>> inv_po_id, ;
>>> sum(inv_Freight) as po_Freight, ;
>>> sum(inv_SalesTax) as po_SalesTax ;
>>> from invoice ;
>>> where ( inv_po_id == ?po_needed ) ;
>>> group by 1 ;
>>> ) X ;
>>> on ( po_id == inv_po_id) ;
>>> where ( po_id == ?po_needed ) ;
>>>
>>>
>>
>>First, thank you. Also, do I understand that this is an example of view that can to be created in SQL Server and not in VFP, right?
>
>
>Notice de semicolons ? It's vfp. But I see no reason why it cannot be done in sqlserver
Thank you for clarifying. Sorry that I didn't pay attention to the semicolons. I will test this approach in both VFP and SQL Server. Initially I thought I would do it using a Function (with pretty much similar code that you wrote). But view is probably better approach (although I don't yet understand why).
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham