Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Syntax for calculated column from subquery results
Message
De
06/08/2008 21:39:43
 
 
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Stored procedures, Triggers, UDFs
Divers
Thread ID:
01337104
Message ID:
01337133
Vues:
11
>Did you try my suggestion?

I think I did without realizing it <g> and the result was as shown in my other reply. Thanks, I think your approach was correct, if what I am showing there is what you were suggesting.


>
>In other words, just put select *, .. as balance from (your whole select here) InnerSelect
>
>>Thanks much, Sergey. Just couldn't figure out how to get the three values resolved before using them to get the fourth.
>>
>>I'm getting an "incorrect syntax" error near ')' on the last line ??? Have a feeling the paren is not the problem but just that everything inside won't resolve.
>>
>>The cross join is interesting. I get that it will yield a Cartesian product so all three fields end up in dbt , no?
>>
>>Does the primary select need aliasing? I've tried various permutations, but debtis and creditedamt don't seem to work with dbt, ad or sm
>>
>>
>>
>>>Hi Charles,
>>>
>>>You can use derived table to add a calculated column. Try
>>>
>>>SELECT *, credits-debits-creditedamt AS balance
>>>	FROM (
>>>		SELECT SUM(ac.yamount) AS credits
>>>			FROM account_credits ac
>>>		CROSS JOIN (
>>>				SELECT sum(ad.yamount) AS debits,
>>>					sum(ad.ycreditedamt) AS creditedamt
>>>				FROM account_debits ad
>>>				WHERE ad.cinmates_id=@cinmates_id
>>>			) dbt
>>>		WHERE ac.cinmates_id = @cinmates_id)
>>>	) sm
>>>

>>>I feel that it can be improved but nothing else comes to mind at the moment.
>>>
>>>>
	SELECT
>>>>		credits = (SELECT SUM(ac.yamount)
>>>>			FROM account_credits ac
>>>>			WHERE ac.cinmates_id = @cinmates_id) ,
>>>>		debits = (SELECT sum(ad.yamount)
>>>>			from account_debits ad
>>>>			WHERE ad.cinmates_id=@cinmates_id) ,
>>>>		creditedamt = (SELECT sum(ad.ycreditedamt)
>>>>			from account_debits ad
>>>>			WHERE ad.cinmates_id=@cinmates_id )
>>>>
>>>>
>>>>In the above stored proc I would like to add a 4th colum which is balance=credits-debits-creditedamt
>>>>
>>>>Would also appreciate any insights as to other ways to design this select.
>>>>


Charles Hankey

Though a good deal is too strange to be believed, nothing is too strange to have happened.
- Thomas Hardy

Half the harm that is done in this world is due to people who want to feel important. They don't mean to do harm-- but the harm does not interest them. Or they do not see it, or they justify it because they are absorbed in the endless struggle to think well of themselves.

-- T. S. Eliot
Democracy is two wolves and a sheep voting on what to have for lunch.
Liberty is a well-armed sheep contesting the vote.
- Ben Franklin

Pardon him, Theodotus. He is a barbarian, and thinks that the customs of his tribe and island are the laws of nature.
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform