Has anyone used grouping sets or perhaps rollup function

I am trying to do a rollup query ....to sum up sales based on an
account number you would think pretty simple.....so here is the
query I wrote
SELECT broker_number
account_number , ACCOUNT_NAME ,
to_char( SUM ( FACTORY_NET_AMT ) , '9,999,999,999') sales$
FROM broker_account_expanded
WHERE product_level = 'BRND'
and product_level_Code not in ( select PROD_CATEGORY_CD from
genesis.tFIN_BRAND )
AND PRODUCT_LEVEL_CODE = '100515'
group by GROUPING SETS (
( broker_number , account_number , account_name ))
however I am getting the following error
SQL> /
group by GROUPING SETS (
ERROR at line 9:
ORA-00933: SQL command not properly ended
Any ideas ?
Thank's
Sameer Handa

I think correct would be:
GROUP BY ROLLUP (broker_number , account_number , account_name )

Similar Messages

  • Has anyone used reMIDI as a plug-in for GarageBand. I downloaded a trial version of reMIDI, which enables MIDI instruments to be strummed or arpegiated, but can't get it to work in Garageband.  How do I set it up?

    Has anyone used reMIDI as a plug-in for Garageband ('08)? The program allows MIDI instruments to be strummed or arpegiated. I have a trial version, but can't get it to work in Garageband. Wonder how to set it up.
    Thanks, Doctor Mark

    Port Forwarding.....or Port Mapping....as Apple calls it is a difficult and complex configuration method for most users. Because there are so many variables involved in this type of setup, it is not possible to provide a step by step guide that will work for everyone with all devices.
    It is possible that a setup guide exists for the the WD drive and AirPort Extreme, but you will have to go looking for it on the Internet. Even if you find one, it may not be tailored to your specific situation or needs.
    Sometimes, you can do everything right....at least according to someone's article or "how to" guide, and things still will not work correctly.
    In situations like this, when you really don't know what to do, you need to enlist the aid of an IT pro, who will know what to do based on your particular products and unique circumstances. Sometimes....they won't be able to get things working either due to particular circumstances.
    But, before you do this, I would strongly recommend that you use a Static IP address for your Internet connection with your ISP. If you do not have this now, contact them to ask them if they offer this type of connection. Expect to pay more for this type of service, of course.

  • Has anyone used JAAS with WebLogic?

    Has anyone used JAAS with Weblogic? I was looking at their example, and I have a bunch of questions about it. Here goes:
    Basically the problem is this: the plug-in LoginModule model of JAAS used in WebLogic (with EJB Servers) seems to allow clients to falsely authenticate.
    Let me give you a little background on what brought me to this. You can find the WebLogic JAAS example (to which I refer below) in the pdf: http://e-docs.bea.com/wls/docs61/pdf/security.pdf . (I believe you want pages 64-74) WebLogic, I believe goes about this all wrong. They allow the client to use their own LoginModules, as well as CallBackHandlers. This is dangerous, as it allows them to get a reference (in the module) to the LoginContext's Subject and authenticate themselves (i.e. associate a Principal with the subject). As we know from JAAS, the way AccessController checks permissions is by looking at the Principal in the Subject and seeing if that Principal is granted the permission in the "policy" file (or by checking with the Policy class). What it does NOT do, is see if that Subject
    has the right to hold that Principal. Rather, it assumes the Subject is authenticated.
    So a user who is allowed to use their own Module (as WebLogic's example shows) could do something like:
    //THEIR LOGIN MODULE (SOME CODE CUT-OUT FOR BREVITY)
    public class BasicModule implements LoginModule
    private NameCallback strName;
    private PasswordCallback strPass;
    private CallbackHandler myCB;
    private Subject subj;
             //INITIALIZE THIS MODULE
               public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options)
                      try
                           //SET SUBJECT
                             subj = subject;  //NOTE: THIS GIVES YOU REFERENCE
    TO LOGIN CONTEXT'S SUBJECT
                                                     // AND ALLOWS YOU TO PASS
    IT BACK TO THE LOGIN CONTEXT
                           //SET CALLBACKHANDLERS
                             strName = new NameCallback("Your Name: ");
                             strPass = new PasswordCallback("Password:", false);
                             Callback[] cb = { strName, strPass };
                           //HANDLE THE CALLBACKS
                             callbackHandler.handle(cb);
                      } catch (Exception e) { System.out.println(e); }
         //LOG THE USER IN
           public boolean login() throws LoginException
              //TEST TO SEE IF SUBJECT HOLDS ANYTHING YET
              System.out.println( "PRIOR TO AUTHENTICATION, SUBJECT HOLDS: " +
    subj.getPrincipals().size() + " Principals");
              //SUBJECT AUTHENTICATED - BECAUSE SUBJECT NOW HOLDS THE PRINCIPAL
               MyPrincipal m = new MyPrincipal("Admin");
               subj.getPrincipals().add(m);
               return true;
             public boolean commit() throws LoginException
                   return true;
        }(Sorry for all that code)
    I tested the above code, and it fully associates the Subject (and its principal) with the LoginContext. So my question is, where in the process (and code) can we put the LoginContext and Modules so that a client cannot
    do this? With the above example, there is no Security. (a call to: myLoginContext.getSubject().doAs(...) will work)
    I think the key here is to understand JAAS's plug-in security model to mean:
    (Below are my words)
    The point of JAAS is to allow an application to use different ways of authenticating without changing the application's code, but NOT to allow the user to authenticate however they want.
    In WebLogic's example, they unfortunately seem to have used the latter understanding, i.e. "allow the user to authenticate however they want."
    That, as I think I've shown, is not security. So how do we solve this? We need to put JAAS on the server side (with no direct JAAS client-side), and that includes the LoginModules as well as LoginContext. So for an EJB Server this means that the same internal permission
    checking code can be used regardless of whether a client connects through
    RMI/RMI-IIOP/JEREMIE (etc). It does NOT mean that the client gets to choose
    how they authenticate (except by choosing YOUR set ways).
    Before we even deal with a serialized subject, we need to see how JAAS can
    even be used on the back-end of an RMI (RMI-IIOP/JEREMIE) application.
    I think what needs to be done, is the client needs to have the stubs for our
    LoginModule, LoginContext, CallBackHandler, CallBacks. Then they can put
    their info into those, and everything is handled server-side. So they may
    not even need to send a Subject across anyways (but they may want to as
    well).
    Please let me know if anyone sees this problem too, or if I am just completely
    off track with this one. I think figuring out how to do JAAS as though
    everything were local, and then putting RMI (or whatever) on top is the
    first thing to tackle.

    Send this to:
    newsgroups.bea.com / security-group.

  • Re: Interfaces in Forte - has anyone used them?

    We are making use of interfaces extensively and have never had the
    slightest problem. Interfaces do not cause any overhead, since they are
    mainly a means to support type checking by the compiler. At run-time the
    interface does not appear any more.
    Using Forte 3.0.F.2
    General wrote:
    >
    We are embarking on the analysis phase of a large pay/personnel project. =
    We have been advised to use interfaces wherever possible, because they =
    promote flexibility and reusability. I am fairly well convinced of the =
    benefits of using interfaces - they appear to have a lot of advantages, =
    and no drawbacks. However, I do wonder whether Forte's implementation of =
    interfaces is stable and usable (..it was only introduced in version 3). =
    If not, we may be better advised to use standard techniques.
    If you have used Forte interfaces I would be interested to hear how you =
    got on.
    regards,
    Tim Kimber--
    Dr. Thomas Kunst mailto:[email protected]
    sd&m GmbH & Co. KG http://www.sdm.de
    software design & management
    Thomas-Dehler-Str. 27, 81737 Muenchen, Germany
    Tel +49 89 63812-221 Fax -444
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

    Eric,
    You are correct, "manipulate anAIFace object" is not really the correct
    way of thinking about what is happening. We are really manipulating an
    instance of an object through an interface.
    In regards to your other statement: "if Project C needs visibility to B,
    it must have B as a supplier Plan." Forte does not force this to happen
    when you are using interfaces, which is what causes the problem. Let me
    expand on my initial example and add enough detail so that you can create
    the problem, which surfaces as a deserialization error:
    Project A (No Supplier Plans)
    Defines Interfaces: UnitIFace with method GetValue() which returns an
    integer
    Project B (Contains A as a Supplier Plan)
    Defines Class: Unit with attribute _Value as an integer and method  
    GetValue() which returns _Value.  Implements interface UnitIFace.
    Project C (Contains A as a Supplier Plan)
    Defines Class: Square with method Calculate which accepts an
    UnitIFace as an input parameter and returns an integer. This class needs
    to be setup as a distributed object so that I service object can be
    defined using this class.
    Defines Service Object: SqaureSO using the Square class.
    Project D (Contains B and C as Supplier Plans)
    Defines a class or uses a window that creates an instance of Class B
    and passes it to the SquareSO service object that sqaures the value and
    returns an integer.
    Once this is setup, use the running man to run everything locally. This
    will run fine because the dependencies for the local partition end up
    including Projects A, B, C and D. Next, run distributed and move the SO
    to a remote partition. Now when you execute you will receive a
    deserialization error. This happens because the dependencies for the
    remote partition only included project A and C. The partition did not
    have the necessary information to deserialize the underlying instance of
    Class Unit that is referenced through the inteface UnitIFace.
    The problem can be resolved by either adding Project B as a supplier plan
    to Project C or ensuring that the interface and class are declared in the
    same project as I suggested in my previous message. In either case, this
    must be resolved by the programmer since Forte is not yet smart enough to
    correctly resolve the project dependencies, even though all of the
    information needed to establish the correct dependency hierarchy is
    available.
    Bradley K Wells
    [email protected]
    Strong Capital Management, Inc
    http://www.strong-funds.com/
    From: Eric Pereira
    Sent: Friday, July 31, 1998 5:57 PM
    To: [email protected]
    Cc: [email protected]
    Subject: RE: Interfaces in Forte - has anyone used them?
    Bradley,
    Thanks for that descriptive note on interfaces.
    I do have a observation : in that example you gave us, if Project C
    needs visibility to B, it must have B as a supplier Plan. Therefore, I
    don't quite understand how partioning classes in C would end up with a
    run-time errror in distributed mode, given that B supplies C (something
    you've perhaps missed out in your example ?).
    Also, is it really possible to "manipulate AIFace objects" ? Interfaces
    are'nt really objects, they just help implement a compile-time type
    check.
    Thanks.
    Eric Pereira
    Forte Consultant
    ----<snip>------------------
    Example:
    Project A - Contains AIFace
    Project B - Contains Class B which implements AIFace, depends on Project
    A
    Project C - Contains Classes manipulating AIFace objects, depends on
    Project A
    This can run fine locally since the local partition has knowledge of all
    the classes in A, B, and C. Now as soon as you throw a service object
    on
    classes on Project C and push them into a remote partition, your
    application starts failing because that partition does not contain the
    information form project B since there is no dependency on that project.
    The partition needs the information from project B though since it
    contains the definitions for the actual implementation objects, however
    there was no way for Forte to determine that need when it generated the
    partition.
    This problem is initially eliminated by keeping the interfaces in the
    same project as the underlying business objects. But once you start to
    have interfaces implemented by multiple classes from multiple projects,
    then this won't cover all the bases either. In any case, it is an issue
    that you will need to consider at some level when using interfaces.
    Good luck!
    Bradley K Wells
    [email protected]
    Strong Capital Management, Inc
    http://www.strong-funds.com/
    From: "Ngai, Stuart" <[email protected]>
    Date: Thu, 30 Jul 1998 11:10:50 -0400
    Subject: RE: Interfaces in Forte - has anyone used them?
    With version 3G, you can not create an array of interfaces. I believe
    Forte
    will have that feature in version 4 (which is scheduled to be in
    production
    at the end of next year).
    -----Original Message-----
    From: Thomas Kunst [SMTP:[email protected]]
    Sent: Thursday, July 30, 1998 8:52 AM
    To: [email protected]
    Cc: General
    Subject: Re: Interfaces in Forte - has anyone used them?
    We are making use of interfaces extensively and have never had the
    slightest problem. Interfaces do not cause any overhead, since theyare
    mainly a means to support type checking by the compiler. At run-timethe
    interface does not appear any more.
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
    Get Your Private, Free Email at http://www.hotmail.com
    To unsubscribe, email '[email protected]' with
    'unsubscribe forte-users' as the body of the message.
    Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>

  • HT204387 Has anyone used their ip4 or higher with the text messaging sync system in the new ford cars it is call map

    Has anyone used their ip4 or higher with the text messaging sync system in the new ford cars it is call map

    Send this to:
    newsgroups.bea.com / security-group.

  • Has anyone used the Essbase XTD Spreadsheet Services?

    Is the Essbase Spreadsheet Services an additional cost above and beyond the spreadsheet add-in?Has anyone used this product in addition to or in place of the existing spreadsheet add-in?What have you found are the added benefits of this product? Any lost functionality or issues with using this over the current spreadsheet add-in.If we upgrade to Essbase 6.5 is this the 'new' spreadsheet add-in or is it optional?Thanks!Lisa

    To try to answer the questions in order:Q: Is the Essbase Spreadsheet Services an additional cost above and beyond the spreadsheet add-in? A: I believe ESS is licensed separately - I don't know if this has or will change in the future, so yes it does cost above and beyond Essbase.Q: Has anyone used this product in addition to or in place of the existing spreadsheet add-in? A: I used it during the beta, and I work with it from time to time, but I have not implemented it in production anywhere as of yet.Q:What have you found are the added benefits of this product? Any lost functionality or issues with using this over the current spreadsheet add-in. A: The main benefits are that you can now connect to your Essbase servers (via Essbase Enterprise Services) over HTTP, which means you don't need TCP connectivity. You could have users around the world and as long as they can see the web server running the service, they can connect.Another benefit is you don't need to install the Essbase runtime on the user's PC. The "add in" can be a CAB file that self installs when the user hits a page you set up. A nice bonus in a large widely dispersed user community.As far as functionality goes, I believe the will be parallel (the beta did not have EIS drill through). The major downer is performance - it is slower than the normal add-in with larger reports.Q: If we upgrade to Essbase 6.5 is this the 'new' spreadsheet add-in or is it optional? A: No - the normal add-in is still the default. ESS requires additional software/configurations (particulary EES, Java App Server) to be used.Regards,Jade-----------------------------------Jade ColeSenior Business Intelligence ConsultantClarity [email protected]

  • Has anyone used switch control and siri at the same time?

    Has anyone used accessibility switch control and siri at the same time?

    Using Xmarks and Sync simultaneously will create a mess.
    You can create a new profile, import the bookmarks from your main profile, and set up Sync for the new profile.
    The flip side is, bookmarks from your main profile would not get synced with your new profile.
    Alternatively, Xmarks is also available for Android.
    https://play.google.com/store/apps/details?id=com.xmarks.android&hl=en

  • Has anyone used iPhone 4s with Oticon Streamer Pro

    Has anyone used iPhone 4s with Oticon Streamer Pro

    I downloaded it today. Doesn't seem to work. It gives you to the option of playing from "Logic Pro" or "Logic Express". When I click "SET" to set the project to fire, all of my logic files are grayed (assuming that means they are not an option)... Waste of 20 bucks.
    Steve
    Branson, Missouri

  • Has anyone used ROXIO TOAST II for burning DVD

    Has anyone used ROXIO TOAST II for setting up intro and burning to DVD. I used to do this in IDVD which has been abandoned in the Maverick

    Just to say that that I've tested iDVD on 10.9 and it works for me. It's a discontinued program of course, and hasn't been supported for several years, but I don't think it runs any differently on 10.9 than it did on say, 10.6.
    However…can't help you with Toast because I don't use it.
    Russ

  • Has anyone used the mackeeper software?

    Has anyone used the mackeeper software?

    Short answer:  I don't recommend it, but it's not "a scam" or malware, per se.  If you use it, you may have some real performance issues.
    Me:  I was an actual MacKeeper user (paid version) for about two years.  What follows is my experience and conclusions.  I am not a paid reviewer, nor tech professional.  I am an educator with about 15 years of experience using Macs.  I am what most people would call a "prosumer," in that I know a good deal about my systerm, but am not a techie, anti-utility software zealot, etc.  I have no affiliation with Zeobit (manufacturer of MacKeeper) nor any of its competitors.
    I bought MacKeeper in 2011, and then upgraded last year.  I used it to remove junk files and duplicates, and experimented with the anti-virus software.  I didn't use most of the other features.
    The problem:  I am running a 2009 15" Macbook Pro 2.8GHZ Core 2 Duo, 4GB RAM, 512GB HDD.  Over the past year, it has been having major performance issues.  Slowdowns, hangups, applications quitting and more were all becoming the norm.  I deleted duplicate files and ran MacKeeper a few times a month.  I also ran permissions repairs regularly (disk utility).  I looked for the cause of the slowdowns everywhere, from too many user accounts being open, to resource hogs.  I decided that MacKeeper's Anti-Virus software was just taking up too much RAM and CPU, so I disabled it.  I continued experiencing slowdowns and started monitoring my available RAM with a freeware app called Memory Clean.  It often reported that I had less than 500MB available, even with very light usage, application wise.  After "cleaning" memory, I could get my available RAM to about 1.5GB, max.  I struggled with these issues for a year or more, and was about ready to concede defeat and buy a new machine.  I figured my MBP was over four years old, and perhaps running Mountain Lion and normal wear/tear were just too much.
    This morning, I noticed that the biggest resource hog on my system was a process called "MacKeeper Helper." The process relaunches even when it is forced to quit.  It was consuming over 100MB of RAM and up to 99 percent of my CPU at times!  I also noticed a process called "anti-virus" that also could not be quit, and was consuming over 100MB of RAM itself.  I started researching how to kill these processes, and was introduced the the Great Online MacKeeper Controversy.  Here is what I learned:
    Some in the Mac community have pure hatred for this product (and some hate all like it).
    There were numerous user reports of it slowing down systems
    Zeobit seemed to be guilty of questionable ethics, particularly in its advertising.
    There was no way to stop MacKeeper Helper and Anti-Virus processes from running with deleting the entire application.
    I wasn't the only one annoyed by MacKeeper's system pop-ups, trying to sell me something I already bought.
    The software got good professional reviews, even from well-respected publications (e.g. MacWorld)
    It is often confused with Mac Defender, which WAS malware.  They two are not associated.
    The Decision:  After researching ways of fully uninstalling MacKeeper (and considering whether or not I should), I decided to try the uninstall instructions from the manufacturer.  It said that it would remove ALL traces of the application.  I also didn't want to get into too much Terminal work and manually deleting things, as some users suggested doing.  I followed the process (close app, drag to trash, enter password, click "uninstall").  I then ran a permissions repair and restarted.
    The Results:  I have been MacKeeper-free for about an hour as I write this. Put simply, my problems appear to be completely solved. MacKeeper Helper and Anti-Virus are gone.  Available RAM is now up to 2.75GB.  I have experienced no slowdowns or app crashes.  Even bootup appeared to be considerably faster.  Launching iPhoto with thousands of images now takes a few seconds instead of minutes.  Everything feels faster.  It's like I have my Mac back!  I was ready to admit defeat and dish out another $2500+ that I didn't have.  I now think that won't be necessary!
    What Should Yo Do? You'll find a lot of controversy out there between professional reviews, ethically dubious paid reviews, Zeobit's own defense through public statements, and Mac users themselves.  Some users like it, and swear up and down they are real people.  Others are extremely angry and hate the product with the passion of 1,000 burning suns.   All I can do is tell you my experience and make the following statement:
    The bottom line is that I would not install MacKeeper/buy MacKeeper on my Mac.  After investigating my own system's problems (which made iit nearly unusable) and concluding that MacKeeper might be the issue, I uninstalled it. Magically, all my issues went away.  So...I report, you decide.  Best of luck.

  • Has anyone use camptune x with mountain lion even though says it does not support it yet

    HAs anyone used camptune x with mountain lion even though it is not yet specific to moutain lion yet?

    Tried it yesterday on my imac 21Jan 2013 running mountain lion 10.8.2, total disaster.
    Backed up my boot camp image using winclone (great programme)
    Purchased and ran camptune x and everything went fine.
    Rebooted into windows 7 and recieved error messages find--set--root--ignore floppies--ignore cd/bootmgr
    ERROR 15
    Gave me a list of options on screen but none resolved the issue.
    Booted back into winclone and used the backup image i had just created to reinstall on bootcamp.
    Have emailed the company but have had no reply as yet
    **** STAY AWAY until updated for mountain lion YOU HAVE BEEN WARNED ****

  • Has anyone used Muse to create a static web page that gets translated into Joomla?

    Has anyone used Muse to create a static web page (html and xml) that gets translated into a Joomla template?

    Obviously I am out of my league. I am not a programer and I thought this would be something simple, but you guys are talking over my head.
    I thought I could create a simple link to the Happy.rdp and it would run...but as mentioned, you can't do that.
    What I have is a java script with a bunch of parameters (see below) that creates a pull-down menu. I was hoping I could list the names of the servers, click on the one I want to connect to, and I would get the log-in screen. That is my goal.
    I have a "Happy.rdp" icon on my desktop and I click on that and the remote connection starts. I have opened "Happy.rpd" in notepad and it has all the parameters (such as the IP address and stuff) that allow me to connect.
    * Menu selection script         *
    var NoOffFirstLineMenus=2;   // Number of first level items
    var LowBgColor='';   // Background color when mouse is not over
    var LowSubBgColor='b0b0b0';   // Background color when mouse is not over on subs
    var HighBgColor='';   // Background color when mouse is over
    ETC...
    // Menu tree
    // MenuX=new Array(Text to show, Link, background image (optional), number of sub elements, height, width);
    // For rollover images set "Text to show" to:  "rollover:Image1.jpg:Image2.jpg"
    Menu1=new Array("","http://home.com","",0,20,0);
    Menu2=new Array("Servers","","",1,20,115);
          Menu2_1=new Array("Servers","Happy.rdp","",0,20,170);

  • HAS ANYONE USED SMC FAN CONTROL

    Has anyone used this program it sets your fan to any rpm speed and it could cool down your system for about 50 percent of its normal temp.

    If you plan on increasing your fan speeds then what I recommend is to monitor your temps for a few days before you go changing anything. Take note of your temps during idle times and light loads then also note the temps under heavy loads. There may be no reason for you to even adjust the fan speeds. You can install either iStat pro widget or Temperature Monitor: http://www.versiontracker.com/dyn/moreinfo/macosx/19994
    You might also find this topic useful:
    http://discussions.apple.com/message.jspa?messageID=6412431#6412431
    George

  • TS3988 My icloud account is not verifying it says check my mail witch I have done and I get a message say your iPhone for has been used to set up and Icloud account but still can not use the icloud can anybody help me.

    My icloud account is not verifying it says check my mail witch I have done and I get a message say your iPhone for has been used to set up and Icloud account but still can not use the icloud can anybody help me.

    Be sure you are checking the email account that you used to set up the Apple ID you used to create the iCloud account.  Also, be sure to check your spam/junk folder as well as your inbox.  The email you should receive looks like the image below.  When you get it, click the Verify Now link.
    If it still isn't there, try going to https://appleid.apple.com, click Manage your Apple ID, sign in, click on Name, ID and Email addresses on the left, then to the right look for a link to resend the verification email.

  • Isse with using Grouping Sets in SQL Server 2008 R2

    Hi,
    I created a query in SQL Server 2012 using grouping sets that works fine.  When I try to use the same query in SQL Server 2008 I get an error ("Inccorrect syntax near SETS").
    I researched using grouping sets in 2008 and didn't see any issue with my query.  What is different in grouping sets 2008 vs 2012?
    SELECT tl.ClientRegionCd as [Client Region Code] , tl.ClientRegionDesc as [Region Name], count(tl.CompleteICN) as [Trauma Letters Sent]
    from TORT_Trauma_Letters tl
    Where CONVERT(VARCHAR(26), tl.SecondNoticeSent, 23) between '2014-06-12' and '2014-06-12'
    GROUP BY GROUPING SETS((tl.ClientRegionCd, tl.ClientRegionDesc), ())
    Stacie

    Check this blog post as how to deal with date ranges
    http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/16/bad-habits-to-kick-mishandling-date-range-queries.aspx
    For your result you can simply achieve your result with UNION ALL, e.g.
    select Client, Region, Letters
    from myTable 
    UNION ALL
    select NULL, NULL, SUM(letters) as Letters
    For every expert, there is an equal and opposite expert. - Becker's Law
    My blog
    My TechNet articles

Maybe you are looking for