Smart questions
Smart answers
Smart people
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Member Login

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips now!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

Join Tek-Tips
*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

LINK TO THIS FORUM!

Add Stickiness To Your Site By Linking To This Professionally Managed Technical Forum.
Just copy and paste the
code below into your site.

Partner With Us!

"Best Of Breed" Forums Add Stickiness To Your Site
Partner Button
(Download This Button Today!)

Feedback

"...Thank you again! I can't tell you how much I and my company appreciate what you've done! I love this place!..."

Geography

Where in the world do Tek-Tips members come from?
FB1 (Instructor)
11 Jun 12 7:51
Hi all

Crystal 11
using a sql view and crystal command
I have a report that show dates and weights

need to be able to show the difference in weight loss or gained.
(IDEALLY Would like it to take the pre date first and then show + or - from Post weight before the date of the pre weight from the next row.)

But do not not mind if it takes it from the row below.

I have the dates in desc order therefore "Post" date is on top and limit to 12 rows.
Would this need to be done via a running total and Please how
Thank you for all your time this would help me enormously
ralph

"Date" "Pre or Post" "Weight" "Weigt Diff"
09/05/2012, "", 85.00, I would like this to show +5,
04/01/2011, "Post", 80.00, -2,
04/01/2011, "Pre", 82.00, -7,
02/01/2011, "", , ,
10/11/2010, "Pre", 89.00, +5 etc,
10/11/2010 "Post" 85.00
08/11/2010 ""
13/10/2010 "" 86.00
30/09/2010 "" 81.90
07/09/2010 "" 110.00
06/09/2010 "" 120.00
10/08/2010 "" 88.15


this is my sql view called patwtht

select p_anthropometry . oid AS recid ,
p_anthropometry . fk_oid AS patientid ,
p_anthropometry . DIDAT AS date ,
p_anthropometry . PREPOST AS prepost , p_anthropometry . DIWT AS weight ,
p_anthropometry . DIBPS AS DIBPS , p_anthropometry . DIBPD AS DIBPD ,
p_anthropometry . DIGAIN AS DIGAIN , p_anthropometry . DIIW AS DIIW ,
p_anthropometry . DIHEIGHT AS DIHEIGHT ,
sp_bmi ( p_anthropometry . oid ) AS BMI from p_anthropometry
order by p_anthropometry . fk_oid , p_anthropometry . DIDAT desc

and in Crystal command

SELECT * FROM patwtht
where Patientid={?ThisPat}
limit 12;
IanWaterman (Programmer)
11 Jun 12 8:29
Instead of using a command and view just use this command
Puts pre and post in same row making your weight difference calculation much easier

CODE

select p_anthropometry . oid AS recid ,
p_anthropometry . fk_oid AS patientid ,
MAXIMUM(p_anthropometry . DIDAT) AS date ,
Maximum(Case when p_anthropometry . PREPOST = 'Pre' then p_anthropometry . DIWT AS weight else 0 end) as PreWeight,
Maximum(Case when p_anthropometry . PREPOST = 'Post' then p_anthropometry . DIWT AS weight else 0 end) as PreWeight,
p_anthropometry . DIBPS AS DIBPS , p_anthropometry . DIBPD AS DIBPD ,
p_anthropometry . DIGAIN AS DIGAIN , p_anthropometry . DIIW AS DIIW ,
p_anthropometry . DIHEIGHT AS DIHEIGHT ,
sp_bmi ( p_anthropometry . oid ) AS BMI
from p_anthropometry
where Patientid={?ThisPat}
group by p_anthropometry . oid,
p_anthropometry . fk_oid,
p_anthropometry . DIBPS, p_anthropometry . DIBPD ,
p_anthropometry . DIGAIN, p_anthropometry . DIIW,
p_anthropometry . DIHEIGHT,
sp_bmi ( p_anthropometry . oid )

Ian
FB1 (Instructor)
11 Jun 12 9:48
Change the query around for Mysql
It nealy works except pre and post date will be in different rows with different oid.

the main problem there is no time field been populated, there it needs to see
the lastest pre date then look at the post date before the pre date

Pre = 200100
Post = 200101
ie

fk_oid, date Prepost weight weight difference days difference

12 12/12/2012 200100 69.2 0.8 2 days
12 10/12/2012 200101 70.0
12 10/12/2012 200100 70.0 6.9 7 days
12 03/12/2012 200101 76.9
12 03/12/2012 200100 76.8

How to I get it to check the next row or date for the calculation

Please find query adated to mysql

select p_anthropometry . oid AS recid , p_anthropometry . fk_oid AS patientid ,
MAX(p_anthropometry . DIDAT) AS date ,
Max(Case when p_anthropometry . PREPOST = '200100'
then p_anthropometry . DIWT -- AS weight
else 0 end) as PreWeight,
Max(Case when p_anthropometry . PREPOST = '200101'
then p_anthropometry . DIWT -- AS weight
else 0 end) as PostWeight,
p_anthropometry . DIBPS AS DIBPS , p_anthropometry . DIBPD AS DIBPD ,
p_anthropometry . DIGAIN AS DIGAIN , p_anthropometry . DIIW AS DIIW ,
p_anthropometry . DIHEIGHT AS DIHEIGHT , sp_bmi ( p_anthropometry . oid ) AS BMI
from p_anthropometry where p_anthropometry . fk_oid = '12'
group by p_anthropometry . fk_oid,
p_anthropometry . DIBPS, p_anthropometry . DIBPD ,
p_anthropometry . DIGAIN, p_anthropometry . DIIW,
p_anthropometry . DIHEIGHT, sp_bmi ( p_anthropometry . oid )
order by max(p_anthropometry . DIDAT) desc


it didn't seem to like the 'as weight' in the query
Max(Case when p_anthropometry . PREPOST = '200100'
then p_anthropometry . DIWT -- AS weight
else 0 end) as PreWeight,


Thank you once again for all your help, any ideas

Ralph
IanWaterman (Programmer)
11 Jun 12 11:16
Sorry that was careless of me did not spot the As Weight in Case, also saw that you spotted duplicate COL names, less haste more speed.

You can do something similar for the dates, I do not know syntax for MYSQL, so replace my To_date() with appropriate

Maximum(Case when p_anthropometry . PREPOST = 'Pre' then p_anthropometry . DIDAT else to_date('01/01/1900', 'DD/MM/YYYY') end) as PreDate

Would that help

Ian

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close