Ask a Question related to Coldfusion Database Access, Design and Development.
-
cshow365 #1
query of query
My table consists of 3 columns:
1) DrugName
2) Dose
3) DateTaken
I want to be able to retrieve the most recent DateTaken for each different
DrugName.
For example:
DrugName Dose DateTaken
viagra 50 mg 01/14/2006
viagra 100 mg 02/04/2006
levitra 20 mg 11/05/2005
levitra 10 mg 12/16/2005
Running the query should yield ....
viagra 100mg 02/04/2006
levitra 10mg 12/16/2006
I having trouble writing the SQL (still a newbie). Any help would be
great!!!!!!!!
-Gary
cshow365 Guest
-
Query of Queries on query New type query
In CF5 we have a page that creates a query, using queryNew and querySetCell and the like, we then used dbtype="query" and gave it's name so we could... -
query of query throwing weird exception
One workaround: I had added rows to a cfsearch query, and set a numeric value in custom1 field that that query provides. A query of queries... -
Convert a query to a list, or find an item in a query
Hi All, I am using CFPOP to retrieve mail from a server, then delete each message after I retrieve it. What I want to do is to check that I don;t... -
CAML Query: Multiple Query Fields Issue
I need to Create a CAML Query Dynamically with VB to a Sharepoint WebService GetListItems Method. The User Could Select 1 to X Number of IDs... -
BCP query out executed by xp_cmdshell works fine from query analyzer but fails from VB Component
Hi all, I have a stored procedure which returns a vast number of record and i have to write the output into a csv file. I'm using BCP utility to... -
DogBot #2
Re: query of query
I really don't undertand your logic here but assuming it's a typo and you
really just want the results ordered by date in descending order:
Assume your table is called something like DosageMonitor
your SQL would look like this
SELECT *
FROM DosageMonitor
ORDER BY DateTaken DESC
However that would yield:
viagra 100 mg 2/4/2006
viagra 50 mg 1/14/2006
levitra 10 mg 12/16/2005
levitra 20 mg 11/5/2005
not
viagra 100mg 02/04/2006
levitra 10mg 12/16/2006
because the viagra doce was taken after the levitra one
DogBot Guest
-
cshow365 #3
Re: query of query
Actually, my post is accurate.
I only want one row returned per DrugName.
Thanks for taking a shot anyway.
-gary
cshow365 Guest
-
Dan Bracuk #4
Re: query of query
select drugname, max(datetaken)
from dosagemonitor
group by drugname
Dan Bracuk Guest
-
cshow365 #5
Re: query of query
That almost got me there!
I still need to retrieve the corresponding dose information though.
I tried:
SELECT DrugName, Dose, max(DateTaken) AS maxdate
FROM drugs
GROUP BY DrugName
but I get the following error:
Error Executing Database Query.
You tried to execute a query that does not include the specified expression
'Dose' as part of an aggregate function.
The error occurred in C:\CFusionMX7\wwwroot\Project
Alpha\Private\drugs\index.cfm: line 178
176 : max(DateTaken) as MaxDate
177 : FROM Drugs
178 : WHERE UserID = #SESSION.auth.UserID#
179 : GROUP BY DrugName
180 : </cfquery>
SQL SELECT DrugName, Dose, max(DateTaken) as MaxDate FROM Drugs WHERE
UserID = 1 GROUP BY DrugName
DATASOURCE drugs
VENDORERRORCODE -3011
SQLSTATE 42000
cshow365 Guest
-
Dan Bracuk #6
Re: query of query
Here is a reference on aggregating data.
[url]http://www.comp.nus.edu.sg/~ooibc/courses/sql/dml_query_aggr.htm[/url]
You have a syntax problem and a logic problem in your query. The syntax
problem is described in your error message. You have a field in your select
clause that is not in your group by clause.
The logic problem is that by including the dose in your select clause, you are
no longer going to get just one row per drug. You will get one row per
combination of drug and dose.
Dan Bracuk Guest
-
reenaroy #7
Re: query of query
use this query
select drugname,dose,datetaken from test1 where DateTaken in (SELECT max(DateTaken) AS maxdate FROM test1 GROUP BY drugname)
reenaroy Guest
-
paross1 #8
Re: query of query
Something like this with a correlated subquery?
SELECT d1.DrugName, d1.Dose, d1.DateTaken
FROM drugs AS d1
WHERE d1.DateTaken = (SELECT max(d2.DateTaken)
FROM drugs d2
WHERE d1.DrugName = d2.DrugName)
Phil
paross1 Guest
-
cshow365 #9
Re: query of query
That did it!
Don't worry, I will go through Chapter 30 of Forta's book and master this stuff.
Thank you!
-Gary
cshow365 Guest



Reply With Quote

