[AccessD] Something too hard for me...

Kostas Konstantinidis kost36 at otenet.gr
Sun Feb 8 14:32:28 CST 2004


Hi Gustav,
thank's a lot
Everything works perfect
Kostas

----- Original Message ----- 
From: "Gustav Brock" <gustav at cactus.dk>
To: "Access Developers discussion and problem solving"
<accessd at databaseadvisors.com>
Sent: Sunday, February 08, 2004 12:07 PM
Subject: Re: [AccessD] Something too hard for me...


> Hi Kostas
>
> > Hi Gustav,
> > In my language we use to say "I have no words to thank you..."
> > So, after two years using this access list I have to say that ADDPS is a
> > real great help community with no date and time limits.
>
> You are welcome! That is was the list is for.
>
> > Well, may be I couldn't manage to give you the right tips about my
question.
> > I put your code line by line into a query but it gives back the same
> > calculation for all records.
> > There is no need to put a filter about the S because I want to know the
Q of
> > all ID's with the same quantity.
> > My table contains records like:
> > ID   Q      PRICE
> > 1     10     55,00
> > 1     20     72,00
> > 1     30     98,00
> > 2     10     47,00
> > 2     20     60,00
> > 2     30     72,00
> > 3     10     65,00
> > 3     20     77,00
> > 3     30     92,00
> > ...
> > so, I can't use unique index to the fields Station and Quantity.
>
> The index was only meant to prevent duplicate entries as the
> combination of Station ID and Quantity must be unique.
>
> > Running the query  e.g. for a 25 Q  it must answers
>
> > ID  Q    PRICE
> > 1    25   88,30
> > 2    25   62,00
> > 3    25   92,30
> > ...
>
>
> OK. You can include the expression in a query where it will be run
> record by record with the respective Station ID.
> Note the correction of Format() to round to one decimal:
>
> <SQL>
>
>   PARAMETERS
>     Q Short;
>   SELECT DISTINCT
>     Station,
>     [Q] AS Quantity,
>     Format(
>       Nz(DMax("Price", "tblRate", "Station = " & Station & " And " & Q & "
\ Quantity > 0"), 0) +
>       Nz(DMax("(Price / Quantity) * (" & Q -
>         Nz(DMax("Quantity", "tblRate", "Station = " & Station & " And
Quantity <= " & Q & ""), 0)
>       & ")", "tblRate", "Station = " & Station & " And Quantity > " & Q &
""), 0),
>     "0.0" & "\0") AS Total
>   FROM
>     tblRate;
>
> </SQL>
>
> Copy and paste this into a new query and adjust to your naming of
> fields etc.
>
> However, if this - to build a list - is the purpose, and the DMax()
> exercise hadn't be done or your count of stations were 1900 and not
> 19, I would suggest to follow the approach of Drew and build a query
> and calculate in SQL, though - with the needed in-line or sub select
> queries - it wouldn't be much nicer to watch.
>
> /gustav
>
>
> > --- Original Message ----- 
> > From: "Gustav Brock" <gustav at cactus.dk>
> > To: "Access Developers discussion and problem solving"
> > <accessd at databaseadvisors.com>
> > Sent: Saturday, February 07, 2004 10:08 PM
> > Subject: Re: [AccessD] Something too hard for me...
>
>
> >> Hi Kostas
> >>
> >> > Hi Gustav,
> >> > thank's a lot for your really excellent job.
> >> > It works perfect but I have another question which is very critical.
> >>
> >> > we are a network of 19 Regional Greek Stations so the general
advertising
> >> > list incloudes common Quantities but different prices for every of
them.
> >> > Every Station based on its ID (from 1 to 19)
> >> > I tried to put your code on but it conficts with good reason cause
the same
> >> > quantities are iclouding several times
> >> > Michael and Drew Many thank's for your time too
> >>
> >> > Be well
> >>
> >>
> >> This is possible and still fun but before being slammed by my fellow
> >> listers, let me note that we are approaching the land of unreadable
> >> code. Nevertheless:
> >>
> >> curTotal = Nz(DMax("Price", "tblRate", "Station = " & S & " And " & Q &
"
> >> \ Quantity >> 0"), 0) + Nz(DMax("(Price / Quantity) * (" & Q -
> >> Nz(DMax("Quantity", "tblRate", "Station = " & S & " And Quantity <= " &
Q &
> >> ""), 0) & ")", "tblRate", "Station = " & S & " And Quantity > " & Q &
""),
> >> 0)
> >>
> >> In addition to the inclusion of a Station ID, please note a minor
> >> correction (<=).
> >>
> >> Your table should now as minimum read:
> >>
> >>   Station: Integer
> >>   Quantity: Integer
> >>   Price: Currency
> >>
> >> A unique index should be applied to the fields Station and Quantity.
> >> Also, you may need to round the total:
> >>
> >> curTotal = Format(Nz(DMax("Price", "tblRate", "Station = " & S & " And
" &
> >> Q & " \ Quantity >> 0"), 0) + Nz(DMax("(Price / Quantity) * (" & Q -
> >> Nz(DMax("Quantity", "tblRate", "Station = " & S & " And Quantity <= " &
Q &
> >> ""), 0) & ")", "tblRate", "Station = " & S & " And Quantity > " & Q &
""),
> >> 0), "Standard")
> >>
> >> /gustav
> >>
> >>
> >> > ----- Original Message ----- 
> >> > From: "Gustav Brock" <gustav at cactus.dk>
> >> > To: "Access Developers discussion and problem solving"
> >> > <accessd at databaseadvisors.com>
> >> > Sent: Saturday, February 07, 2004 2:56 PM
> >> > Subject: Re: [AccessD] Something too hard for me...
> >>
> >>
> >> >> Hi Kostas
> >> >>
> >> >> > I am trying to create a little project to calculate some prices of
a Radio
> >> >> > Station advertising list
> >> >> > In a table I keep CATEGORY and PRICE e.g.
> >> >>
> >> >> 10 -->> 55,00EURO
> >> >> 20 -->> 80,00
> >> >> 30 -->> 90,00
> >> >> > bla, bla
> >> >>
> >> >> > What I want to calculate is the price of an uncategorized spots
between two
> >> >> > categories.
> >> >> > 25 SPOTS....
> >> >> > The calculation is:
> >> >> > A) the 20 spots cost 80,00
> >> >> > B) I have to select the next category (in that case 30) to find
out how much
> >> >> > cost one spot (90,00/30 = 3,00EURO)
> >> >> > C). the 5 spots cost 5X3,00=15,00
> >> >> > so, the total price for the uncategorized query must be
> >> >> > 80,00+15,00=95,00euro
> >> >>
> >> >>
> >> >> You can, as an exercise in DMax(), do this with a single line of
code
> >> >> where Q is your number of spots:
> >> >>
> >> >> curTotal = Nz(DMax("Price", "tblRate", "" & Q & " \ Quantity > 0"),
0) +
> >> >> Nz(DMax("(Price / Quantity) * (" & Q - Nz(DMax("Quantity",
"tblRate",
> >> >> "Quantity < " & Q & ""), 0) & ")", "tblRate", "Quantity > " & Q &
""),> 0)
> >> >>
> >> >> The limitation is that your rate table must include an entry equal
to
> >> >> or exceeding the largest possible quantity of spots for a single
> >> >> order.
> >> >>
> >> >> Have fun!
>
> _______________________________________________
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>




More information about the AccessD mailing list