Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Sql Help
Message
 
 
À
18/12/2009 13:00:12
James Blackburn
Qualty Design Systems, Inc.
Kuna, Idaho, États-Unis
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Titre:
Divers
Thread ID:
01439765
Message ID:
01439793
Vues:
48
Here is George Mastros solution - I'm still working on mine:
Select        Truck.*,
               Case When Truck.Overweight > fine.MaxWeight
            Then (MaxWeight - MinWeight + 1) * Fineamount
                        Else (OverWeight - MinWeight + 1) * FineAmount
                        End As Fine
From        #ttt As Fine
               Inner Join #Truck As Truck
                       On Truck.Overweight >= Fine.MinWeight
Though now after seeing it I can only say - how come I didn't figure this out myself! :)


>How's this
>
>
>create table #truck (id int, overweight int);
>insert #truck values (1,3500);
>insert #truck values (1,2500);
>insert #truck values (2,1500);
>insert #truck values (2,500);
>insert #truck values (1,500);
>
>create table #ttt (minweight int, maxweight int, fineamount numeric(8,4));
>insert #ttt values (1,1000,.005);
>insert #ttt values (1001,2000,.01);
>insert #ttt values (2001,3000,.015);
>insert #ttt values (3001,4000,.02);
>insert #ttt values (4001,5000,.025);
>insert #ttt values (5001,999999999,.03);
>
>
>
>>>
>>>>Can you post complete rate table
>>>>
>>>>>I am using a Sybase database but I would think the sql syntax should be almost the same. I have a requirement that I need to calculate fine for overweight trucks. The way the customer wants to do this is to have 1000 pound groups and each group has a progressively higher rate. For example, if a truck is 3500 lbs overweight then the calculation should be:
>>>>>
>>>>>1000 * .005   = $5.00
>>>>>1000 * .01     = 10.00
>>>>>1000 * .015   = 15.00
>>>>>500   * .02    = 10.00
>>>>>for a total of 40.00 
>>>>>
>>>>>I tried to create a temp table to hold the rates but I I'm stumped on how to do a join. I was hoping for a SQL solution if it is possible.
>>>>>
>>>>>Thanks.
If it's not broken, fix it until it is.


My Blog
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform