Need help writing User Query
-
- Posts: 28
- Joined: Tue Jun 24, 2014 9:15 pm
Need help writing User Query
I haven't quite figured out how to write queries (SQL language).
I created a Patient Field Definition called "QDP Anniversary" with a date.
I'd like to run a report that would list all my QDP patients. So, the report would be active patients with a date in that field that is greater than January 1st, 2013.
This is what I came up with. But, I'm getting an "unknown column - QDPanniversary" error. I came up with this by copying from another report and modifying it where I thought was appropriate. But, so far, no go.
SELECT patient.LName, patient.FName, patient.EMail
FROM patient
WHERE PatStatus=0 AND QDPanniversary > "2013-01-01";
Anyone handy with SQL? Thanks!
Mike
I created a Patient Field Definition called "QDP Anniversary" with a date.
I'd like to run a report that would list all my QDP patients. So, the report would be active patients with a date in that field that is greater than January 1st, 2013.
This is what I came up with. But, I'm getting an "unknown column - QDPanniversary" error. I came up with this by copying from another report and modifying it where I thought was appropriate. But, so far, no go.
SELECT patient.LName, patient.FName, patient.EMail
FROM patient
WHERE PatStatus=0 AND QDPanniversary > "2013-01-01";
Anyone handy with SQL? Thanks!
Mike
Re: Need help writing User Query
Your problem is that those added fields get stored in another table called "patfield". So you would have to link both tables using a common field like the patnum field. This is what you would get:
select patient.Lname, patient.Fname, patient.email, patfield.fieldvalue
From patient, patfield
Where patient.patstatus = 0
AND patient.patnum = patfield.patnum
AND patfield.fieldname = 'QDPAnniversary''
AND patfield.fieldvalue > "2013-01-01"
select patient.Lname, patient.Fname, patient.email, patfield.fieldvalue
From patient, patfield
Where patient.patstatus = 0
AND patient.patnum = patfield.patnum
AND patfield.fieldname = 'QDPAnniversary''
AND patfield.fieldvalue > "2013-01-01"
Jorge Bonilla DMD
Open Dental user since May 2005
Open Dental user since May 2005
-
- Posts: 28
- Joined: Tue Jun 24, 2014 9:15 pm
Re: Need help writing User Query
thanks for your help. I ran that and got an error:Jorgebon wrote:Your problem is that those added fields get stored in another table called "patfield". So you would have to link both tables using a common field like the patnum field. This is what you would get:
select patient.Lname, patient.Fname, patient.email, patfield.fieldvalue
From patient, patfield
Where patient.patstatus = 0
AND patient.patnum = patfield.patnum
AND patfield.fieldname = 'QDPAnniversary''
AND patfield.fieldvalue > "2013-01-01"

-
- Posts: 28
- Joined: Tue Jun 24, 2014 9:15 pm
Re: Need help writing User Query
OK... figured out that the "anniversary" line had an extra " ' " at the end. Deleted that. No more error, but the report comes up empty.
Re: Need help writing User Query
Sorry about the double quotes. The date also should use single quotes, but for some reason it won't return any results. Apparently this field isn't recognized as a date. We'll have to wait for the solution from the guys at OD.
Jorge Bonilla DMD
Open Dental user since May 2005
Open Dental user since May 2005
Re: Need help writing User Query
I tried treating the field value as a text instead of as a date, and came up with this:
Select patient.Lname, patient.Fname, patient.email, patfield.fieldvalue as QDPDate
From patient, patfield
Where patient.patstatus = 0
AND patient.patnum = patfield.patnum
AND patfield.fieldname = 'QDPAnniversary'
AND patfield.fieldvalue Like '%2013'
Select patient.Lname, patient.Fname, patient.email, patfield.fieldvalue as QDPDate
From patient, patfield
Where patient.patstatus = 0
AND patient.patnum = patfield.patnum
AND patfield.fieldname = 'QDPAnniversary'
AND patfield.fieldvalue Like '%2013'
Jorge Bonilla DMD
Open Dental user since May 2005
Open Dental user since May 2005
Re: Need help writing User Query
OK, my suspicion is confirmed. I wrote you a query where we convert the text string in your custom QDPAnniversary field to a date type value and it should work. Please try this:
Select patient.Lname, patient.Fname, patient.email, patfield.fieldvalue as QDPAnniversary
From patient, patfield
Where patient.patstatus = 0
AND patient.patnum = patfield.patnum
AND patfield.fieldname = 'QDPAnniversary'
AND str_to_date(patfield.fieldvalue,'%m/%d/%Y') > '2013/01/01'
Select patient.Lname, patient.Fname, patient.email, patfield.fieldvalue as QDPAnniversary
From patient, patfield
Where patient.patstatus = 0
AND patient.patnum = patfield.patnum
AND patfield.fieldname = 'QDPAnniversary'
AND str_to_date(patfield.fieldvalue,'%m/%d/%Y') > '2013/01/01'
Jorge Bonilla DMD
Open Dental user since May 2005
Open Dental user since May 2005
-
- Posts: 28
- Joined: Tue Jun 24, 2014 9:15 pm
Re: Need help writing User Query
It worked! Thanks! Very cool.Jorgebon wrote:OK, my suspicion is confirmed. I wrote you a query where we convert the text string in your custom QDPAnniversary field to a date type value and it should work. Please try this:
Select patient.Lname, patient.Fname, patient.email, patfield.fieldvalue as QDPAnniversary
From patient, patfield
Where patient.patstatus = 0
AND patient.patnum = patfield.patnum
AND patfield.fieldname = 'QDPAnniversary'
AND str_to_date(patfield.fieldvalue,'%m/%d/%Y') > '2013/01/01'
Is it possible to have the rows numbered on the left side?
Re: Need help writing User Query
Like this?
SET @pos=0;
SELECT @pos:=@pos+1 as Patient, patient.Lname, patient.Fname, patient.email, patfield.fieldvalue as QDPAnniversary
From patient, patfield
Where patient.patstatus = 0
AND patient.patnum = patfield.patnum
AND patfield.fieldname = 'QDPAnniversary'
AND str_to_date(patfield.fieldvalue,'%m/%d/%Y') > '2013/01/01'
SET @pos=0;
SELECT @pos:=@pos+1 as Patient, patient.Lname, patient.Fname, patient.email, patfield.fieldvalue as QDPAnniversary
From patient, patfield
Where patient.patstatus = 0
AND patient.patnum = patfield.patnum
AND patfield.fieldname = 'QDPAnniversary'
AND str_to_date(patfield.fieldvalue,'%m/%d/%Y') > '2013/01/01'
Jorge Bonilla DMD
Open Dental user since May 2005
Open Dental user since May 2005
-
- Posts: 28
- Joined: Tue Jun 24, 2014 9:15 pm
Re: Need help writing User Query
You're the best!Jorgebon wrote:Like this?
SET @pos=0;
SELECT @pos:=@pos+1 as Patient, patient.Lname, patient.Fname, patient.email, patfield.fieldvalue as QDPAnniversary
From patient, patfield
Where patient.patstatus = 0
AND patient.patnum = patfield.patnum
AND patfield.fieldname = 'QDPAnniversary'
AND str_to_date(patfield.fieldvalue,'%m/%d/%Y') > '2013/01/01'
Muchas gracias! Te lo agradezco!
