Query of Queries- sorting issue
I've discovered that when I get a query from the database and
then try to sort it by QofQ the results are very strange.
When using ' SELECT * FROM' the results differ from those
when using 'SELECT Column1, Column2 FROM'
I wonder if I did not include some parameters or it is a bug
of Coldfusion.
P.S. Attached code should illustrate what I mean.
P.P.S. Can you implement 'upper(ColumnName)' in order by in
QofQ?
>> P.P.S. Can you implement 'upper(ColumnName)' in
order by in QofQ?
>It's always quite easy to TRY these things rather than
asking someone else if it works ;-)
Sorry :-) My mistake - it did not work because of the null in
the column. It works perfectly fine when there are no nulls.
Thanks for the response ;-)
Similar Messages
-
Query as a web service Sorting issue
Hi All,
We have designed an existing BI query as a web service but it seems to be ignoring the Sort order of different characteristics used (as defined in Bex Query Designer).
Using the Context menu in QAAS and defining/managing the Sort is not working.
Has anyone experienced such an issue and how to handle this?
Thanks and Regards,
BansiHi All,
You can try this solution. It has something to do with the universe parameter, END_SQL.
I implemented this as a work around and it solved our problem about the sorting issue with QAAWS.
Here are the steps:
1: Open the universe
2. Ope File, then Universe Parameter
3. Click the parameter tab
4. Scroll down until you see the 'END_SQL' entry. This entry is blank by default.
5. Select END_SQL
6. On the VALUE box, type: ORDER BY 1
7. This will enable the REPLACE button. Click REPLACE
8. Save the universe
9 Test a query using 2 columns and view the SQL.
You should see now the ORDER BY 1 inferred in the SQL statement.
Voila!!!!
Of course you can always add ORDER By 1,2,3 later if there's a need.
Enjoy.....
Ferdinand -
Query of queries case sensitive
Hi,
I've a question regarding this issue. I am pulling data from an xml file and dump that data into query of queries then output them. The problem is when I try to order the query ASC, the upper will be top and the lower will be on the bottom. Is there a way to sort them before dump data into query? Or any ways of getting around this?
Thanks.Depending on your requirements, you might want to add a new column to the query, rather than calling upper() on your actual data column... it depends on whether you want your data column to be all upper case (like if you are displaying it).
So instead of this:
SELECT col1, upper(col2)
FROM q
ORDER BY col2
Have this:
SELECT col1, col2, upper(col2) AS col2Sort
FROM q
ORDER BY col2Sort
It doesn't always matter, obviously, but it's handy to keep it in mind.
Adam -
Problem using DECODE() function with a Query of Queries
I
posted
on my blog about an issue I was having trying to use the PL/SQL
DECODE() function with a Coldfusion Query of Queries. This function
works fine when you query a database for information. However, when
you query another query, it seems that CF doesn't recognize it. I
got errors stating that it found a left parenthesis where it
expected a FROM key word. Here is a simplified version of what I am
trying to do:
quote:
<!--- Simulated query; similar to what I was calling from
my database --->
<cfscript>
qOriginal = queryNew("Name,Email,CountryCode",
"VarChar,VarChar,VarChar");
newRow = queryAddRow(qOriginal, 5);
querySetCell(qOriginal, "Name", "Joe", 1);
querySetCell(qOriginal, "Email", "[email protected]", 1);
querySetCell(qOriginal, "CountryCode", "AMER", 1);
querySetCell(qOriginal, "Name", "Sally", 2);
querySetCell(qOriginal, "Email", "[email protected]", 2);
querySetCell(qOriginal, "CountryCode", "AMER", 2);
querySetCell(qOriginal, "Name", "Bob", 3);
querySetCell(qOriginal, "Email", "[email protected]", 3);
querySetCell(qOriginal, "CountryCode", "ASIA", 3);
querySetCell(qOriginal, "Name", "Mary", 4);
querySetCell(qOriginal, "Email", "[email protected]", 4);
querySetCell(qOriginal, "CountryCode", "EURO", 4);
querySetCell(qOriginal, "Name", "John", 5);
querySetCell(qOriginal, "Email", "[email protected]", 5);
querySetCell(qOriginal, "CountryCode", "EURO", 5);
</cfscript>
<cfquery name="qCountries" dbtype="query">
SELECT DISTINCT(CountryCode) AS CountryCode,
DECODE(states, "AMER", "North America & Canada",
"EURO", "Europe & Africa", "ASIA", "Japan &
Asia","") CountryName
FROM qOriginal
ORDER BY CountryCode
</cfquery>
<cfdump var="#qCountries#">
<!--- ========== END OF CODE ========== --->
So running this returned the following error:
Query Of Queries syntax error.
Encountered "(. Incorrect Select Statement, Expecting a
'FROM', but encountered '(' instead, A select statement should have
a 'FROM' construct.
Does anybody know why this doesn't work? Is it just not
supported? Please note that I have also tried to use the CASE()
function instead of DECODE() and that resulted in basically the
same error. For now I an looping over my distinct query with a
switch statement and manually loading a new query with the data how
I want it. But it would be a lot cleaner and less code to have the
DECODE() to work. Thx!DECODE() is an Oracle function, not generic SQL. Q-of-Q is a
very limited subset of SQL and lacks many functions and clauses
available in standard SQL, especially what you may be used to using
in your particular RDBMS.
See
Query
of Queries user guide
Phil -
Can't find answer to Query Of Queries runtime error
Not only I browsed this forum but also googled this problem but unfortunnately I have no luck in finding the answer.
All I did was writing this simple query:
<cfquery name="test" dbtype="query">
select SSN,BirthDate from myquery where SSN <> '' OR BirthDate <> ''
</cfquery>
and I got this error:
Query Of Queries runtime error.
Comparison exception while executing <>.
Unsupported Type Comparison Exception: The <> operator does not support comparison between the following types:
Left hand side expression type = "DOUBLE".
Right hand side expression type = "STRING".
I tried the following and did not work either, still got the same error.
<cfquery name="test" dbtype="query">
select SSN,BirthDate from myquery
where SSN <> <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value=""/>
OR BirthDate <> <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value=""/></cfquery>
Has someone ever encountered the same problem and know how to solve it?HELP ! ! ! Going into testing soon. I need this to work to get correct report results ! ! ! !
My issue seems similar to the one under discussion and the reply from lawhite01 caught my eye. Can you roll my issue into this discussion?
This is a 2 parter. The second part is the QoQ part, but the 1st part has a line in the query that is similar to the QoQ one and it uses the same data. Part 1 also throws an error.
PART # 1.
I'm trying to use a query table created through QueryNew and then query it.
I need multiple columns in the query table I create:
<cfscript>
tot_AllCurrentDraftListing = QueryNew("AnnounceNum, JP_PDLoc, JP_JS_Title, JP_JS, JP_KW_1, JP_JobTitle, JP_Open, JP_Close, JP_CloseType, JP_CloseName, JP_PosNeed, JP_DirectHire, JP_Desc, JP_Draft, JP_Archived, JP_State, JP_AreaName, JP_AreaID, JP_AreaAlias, JP_Fac_SU, JP_Fac_Facility, JP_FAC_ID, JP_Grade1, JP_sal_low1, JP_sal_high1, JP_Grade2, JP_sal_low2, JP_sal_high2, JP_Grade3, JP_sal_low3, JP_sal_high3, JP_Grade4, JP_sal_low4, JP_sal_high4, JP_Grade5, JP_sal_low5, JP_sal_high5, JP_Posted, JP_TypeHire, JP_HRemail");
</cfscript>
Then I populate all the cells of the query table.
Then I set up to use the created query table.
I do this first:
<cfquery name="qAltPostID" datasource="#at_datasource#">
SELECT AltPoster, fk_Job_AnnounceNum
from JOB_JPContacts
Where AltJPContactType = 'AltPosterID'
and AltPoster = '#session.IHSUID#'
</cfquery>
Then, in my first query using the created query, I expect to need to choose from multiple values, so I'm using this line in the query (this is NOT a QoQ query):
and AnnounceNum IN (<cfqueryparam cfsqltype="CF_SQL_varchar" value="#ValueList(qAltPostID.fk_Job_AnnounceNum)#">)
I've also tried:
and AnnounceNum IN (#ValueList(qAltPostID.fk_Job_AnnounceNum)#)
and:
and JOB_AnnounceNum IN
SELECT fk_Job_AnnounceNum
from JOB_JPContacts
Where AltJPContactType = 'AltPosterID'
and AltPoster = '#session.IHSUID#'
ERROR is: one record should return. I get 0.
PART # 2: Here's the QoQ part.
I get the error:
Query Of Queries runtime error.
Comparison exception while executing IN.
Unsupported Type Comparison Exception: The IN operator does not support comparison between the following types:
Left hand side expression type = "LONG".
Right hand side expression type = "STRING".
A tutorial I found gave an example using only one column for this part of the fix:
tot_AllCurrentDraftListing = QueryNew("AnnounceNum", "CF_SQL_VARCHAR")
How would I set up the query with the datatype when I'm using multiple columns:
<cfscript>
tot_AllCurrentDraftListing = QueryNew("AnnounceNum, JP_PDLoc, JP_JS_Title, JP_JS, JP_KW_1, JP_JobTitle, JP_Open, JP_Close, JP_CloseType, JP_CloseName, JP_PosNeed, JP_DirectHire, JP_Desc, JP_Draft, JP_Archived, JP_State, JP_AreaName, JP_AreaID, JP_AreaAlias, JP_Fac_SU, JP_Fac_Facility, JP_FAC_ID, JP_Grade1, JP_sal_low1, JP_sal_high1, JP_Grade2, JP_sal_low2, JP_sal_high2, JP_Grade3, JP_sal_low3, JP_sal_high3, JP_Grade4, JP_sal_low4, JP_sal_high4, JP_Grade5, JP_sal_low5, JP_sal_high5, JP_Posted, JP_TypeHire, JP_HRemail");
</cfscript>
I used this code after all the cells contained values and before running my QoQ query:
<cfloop index="intID" from="1" to="#tot_AllCurrentDraftListing.recordcount#" step="1">
<cfset tot_AllCurrentDraftListing["AnnounceNum"] [intID] = JavaCast("string", intID) />
</cfloop>
Is that correct?
Thanks.
Whoever can help me with this should be awarded extra points ! ! ! ! -
Query of queries problem or bug
Hello Everyone,
I have used cfdirectory to get a list of files. As the result
I receive query with the files.
Then I want to search it using query of queries. I' ve found
a problem and I wonder if it is a bug of Coldfusion or perhaps
wrong usage of QoQ. The thing is that the files that I have are
using '_' and then are followed by number of week. It seems that
searching something like this '%_6' returns results *_*6. See
attached code.
Thanks for all answers in advance.> I think you'll find "_" is a single-char wildcard when
used with the LIKE
> operator.
Found out how to escape it:
WHERE Name LIKE '%[_]6%'
I'm glad you brought this up... I didn't know about this
until I looked @
your issue. That's my new thing learned for the day: I can go
to the pub
now ;-)
Adam -
Over the past several weeks we've been experiencing periodic
hangs of the ColdFusion service. We finally invested in SeeFusion
and found the problem, but aren't sure how to fix it
The code that hangs is a query of queries block. Basically we
are getting a result set from verity (~1000 rows), then getting a
result set from SQL server (~3000 rows), and joining the two with
the query of query statement. Everything will run fine for a few
hours, then that block of code will bog down. When I dumped the
threads during the error, everything gets hung like so:
"jrpp-255" runnable
at
coldfusion.sql.imq.rttExpr.guesstimateJavaType(rttExpr.java:439)
at
coldfusion.sql.imq.rttExpr.guesstimateJavaType(rttExpr.java:371)
at
coldfusion.sql.imq.imqTable.guessColumnType(imqTable.java:443)
at
coldfusion.sql.QueryTableMetaData.InferMetaDataTypes(QueryTableMetaData.java:350)
at coldfusion.sql.imq.TableList.validate(TableList.java:166)
at
coldfusion.sql.imq.rttSelectExprSpec.validate(rttSelectExprSpec.java:498)
at
coldfusion.sql.imq.rttSelectStmt.validate(rttSelectStmt.java:84)
at
coldfusion.sql.imq.jdbcStatement.fetchResult(jdbcStatement.java:538)
at
coldfusion.sql.imq.jdbcStatement.execute(jdbcStatement.java:131)
at coldfusion.sql.Executive.executeQuery(Executive.java:775)
at coldfusion.sql.SqlImpl.execute(SqlImpl.java:240)
at
coldfusion.tagext.sql.QueryTag.doEndTag(QueryTag.java:500)
at
cfauctionManagement2ecfc978963305$funcJOINAUCTIONSTOVERITY.runFunction(D:\inetpub\wwwroot \CustomTags\mysite\component\auctionManagement.cfc:137)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:344)
at
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
at
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:290)
at
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:254)
at
coldfusion.filter.FunctionAccessFilter.invoke(FunctionAccessFilter.java:56)
at
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:207)
at coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:366)
at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:198)
at
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:157)
at coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:1594)
at
coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:341)
at
cfact_search_auctions2ecfm1040202400._factor47(D:\inetpub\wwwroot\CustomTags\mysite\actio n\act_search_auctions.cfm:849)
at
cfact_search_auctions2ecfm1040202400.runPage(D:\inetpub\wwwroot\CustomTags\mysite\action\ act_search_auctions.cfm:1)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
at
coldfusion.filter.CFVariablesScopeFilter.invoke(CFVariablesScopeFilter.java:63)
at
coldfusion.tagext.lang.ModuleTag.doStartTag(ModuleTag.java:255)
at
coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:1925)
at
cfindex2ecfm1952396859.runPage(D:\inetpub\wwwroot\mysite\cfml\auctions\index.cfm:18)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
at
coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349)
at
coldfusion.runtime.CfJspPage._emptyTag(CfJspPage.java:1915)
at
cflas2dvegas2dtimeshares2ecfm1477369516.runPage(D:\inetpub\wwwroot\mysite\cfml\las-vegas- timeshares.cfm:1)
at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:152)
at
coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:349)
at
coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
...etc
I believe this means CF is trying to "guesstimate" the java
type of each column in the result set. We tried to work around that
by CASTing each column as a varchar, but we still have the same
issue.
If anyone has an idea what the problem could be, we'd really
appreciate any help. Also, if anyone can suggest a way to merge the
two result sets without using SQL, that would be great too. I've
already tried nested loops to manually build the final result set,
but that was taking up to 5 seconds to run.
Environment:
CFMX 7.0.2
Win2K
SQL Server 2K> We need more information than that to display a record,
so we select
> everything out of the database (which is fairly quick),
then JOIN that to the
> verity results (WHERE auctionID = KEY).
Right. And what do you need THOUSANDS of matches for, in one
hit, here?
And what do you need ALL those columns for, when dealing with
all these
thousands of rows. You've not really answered my question as
to "what's
the end result here?" What are you trying to achieve? I don't
mean what
you're doing to aggregate the data, but simply *why*? What is
the
requirement you have here to be engaging in this enterprise
in the first
place? Search screen? Stock control report? What?
Is there any way of optimising how much processing you're
doing?
If - say - you're doing a search results screen, you probably
don't need
1000s of results: you probably need 20. So just ask the DB
for 20: WHERE
id IN (#list of 20 IDs from Verity search results#)
If the user goes "NEXT >>", then grab the next 20
(cache the Verity query
somehow, rather than re-query it).
Obviously there's some heavy-lifting processing that might
need to process
the whole lot. Can this not be done in a sliding window of
results? Or
could you not pass the list of IDs from the Verity resultset
into the DB
somehow, and do the filtering on the DB engine, rather than
with CF (which
is not very good at bulk data processing, as you're seeing.
It's not what
it's designed for).
I find QoQ to be very flaky for all ut the most basic
operations. For
basic stuff it's fine. It does not surprise me that it seems
to leak
memory (or whatever it's doing) and eventually give up the
ghost. This
does not help you, I realise, but as a suggested practice:
don't expect too
much out of QoQ. Try some other method instead.
Adam -
Sorting issue after upgrade from 9i to 10g
Dear all,
It is found that the sorting behavior is different after upgrade from 9i to 10g.
In 9i, even if the SQL statement does not specify the ORDER BY clause, the sorting order is consistent for a particular SQL statement and most likely the sequence follows the searched key fields' order.
After upgrade to 10g, the query output could vary as long as the SQL statement does not specify the ORDER BY clause.
Is it due to the Reverse Docid Sorting issue? How can I troubleshoot this issue?
Thanks for your help,
M.T.903714 wrote:
Dear all,
It is found that the sorting behavior is different after upgrade from 9i to 10g.
In 9i, even if the SQL statement does not specify the ORDER BY clause, the sorting order is consistent for a particular SQL statement and most likely the sequence follows the searched key fields' order.
After upgrade to 10g, the query output could vary as long as the SQL statement does not specify the ORDER BY clause.
Is it due to the Reverse Docid Sorting issue? How can I troubleshoot this issue?
Thanks for your help,
M.T. This is expected behavior in 10g. Oracle will not order the dataset for you unless and until you explicitly specify it.
So without using order by clause in 10g, oracle doesn't guarantee that rows will be ordered.
To go back to old behavior like 9i, you can set a workaround by
alter session set "_newsort_enabled"=false;
Also see MOS - Order Of Data Retrieval Differs after upgrading 9i To 10g [ID 456707.1] -
ORDER BY FIELD, Query of Queries
Hi, is ther any substitution for this query in CF Query of
Queries?
SELECT * FROM table1 ORDER BY FIELD(col_1, 'apple', 'orange',
'banana')
Query of Queries do not support FIELD but I need a query
ordered in a specific way and i would rather not add a field to my
table for this simple queryYour syntax is not standard sql. There might be a db that
supports it, but none that I know of.
Depending on what you are trying to accomplish, you can
derive your sort column in your initial query. You might not even
need a Q of Q. Maybe something like this:
select case
when col_1 = 'apple' then 1
when col_1 = 'orange' then 2
when col_1 = 'banana' then 3
end as sort_column
from etc
order by sort_column -
I am getting this error when trying to run a query of queries
on a query constructed with QueryNew(): The value "" cannot be
converted to a number
My hosting company recently upgraded to Coldfusion 7 and this
is when the error began. It worked fine before this and I have not
been able to figure out what to do to correct the issue.
I have dumped the query that I am constructing with QueryNew
and beside some values being null the query looks fine. I don't
think having some null fields should pose a problem.
Any ideas?Try inserting the word null instead of an empty
string. -
Query as Web service issue.
Hi,
I have created a BAPI for sales order creation in one of the R/3 system. On top of that i created xeclsius report and used "Web service connection", and mapped the input and output fileds. when I click preview it working properly, but when next time open the xlf file it is not fetching the data, again we have to import and do the same process then only it is fetching the data.
I have tried by Exsporting to SWF file and through opendoc url also, but the problem is same.
Can any one help me on this?
Best Regards
Raju.kHi All,
You can try this solution. It has something to do with the universe parameter, END_SQL.
I implemented this as a work around and it solved our problem about the sorting issue with QAAWS.
Here are the steps:
1: Open the universe
2. Ope File, then Universe Parameter
3. Click the parameter tab
4. Scroll down until you see the 'END_SQL' entry. This entry is blank by default.
5. Select END_SQL
6. On the VALUE box, type: ORDER BY 1
7. This will enable the REPLACE button. Click REPLACE
8. Save the universe
9 Test a query using 2 columns and view the SQL.
You should see now the ORDER BY 1 inferred in the SQL statement.
Voila!!!!
Of course you can always add ORDER By 1,2,3 later if there's a need.
Enjoy.....
Ferdinand -
Combining results with a Query of Queries - NOT QUITE THERE!!!
I have included a small sample of my database, specifically the four tables I am trying to work with in the hopes that someone can steer me down the right path. Here are the four tables and the bottom is a visual desciption of what I am trying to achieve;
ORDERS
SALES CALLS
ID
SaleDate
TerritoryManager
UserID
SaleDate
TerritoryManager
ID
UserID
426
01-Oct-09
Mike B
10112
10/1/2009
Mike B
253
10112
427
01-Oct-09
Russ C
10115
10/1/2009
Mike B
254
10112
430
01-Oct-09
Jerry W
10145
10/1/2009
Mike B
255
10112
432
01-Oct-09
Ron H
10118
10/1/2009
Mike B
256
10112
433
01-Oct-09
Ron H
10118
10/1/2009
Ron H
257
10118
10/1/2009
Ron H
258
10118
PRODUCTS ORDERED
10/1/2009
Ron H
260
10118
OrderID
Quantity
NewExisting
UserID
10/1/2009
Russ C
261
10115
426
12
0
10112
10/1/2009
Mike B
267
10112
427
2
0
10115
10/1/2009
Mike B
268
10112
427
3
1
10115
430
1
0
10145
USERS
430
1
0
10145
TerritoryManager
Zone
UserID
432
1
0
10118
Mike B
Central
10112
432
1
0
10118
Russ C
Central
10115
432
1
1
10118
Jerry W
Central
10145
432
1
1
10118
Ron H
Central
10118
433
2
1
10120
Don M
Central
10120
Central Zone
Ttl Calls
Ttl Orders
Ttl Items
Ttl New Items
Mike B
5
1
12
1
Russ C
1
1
5
Jerry W
1
2
Ron H
3
2
6
3
I have tried to achieve this result in many ways to no avail. If I try to combine PRODUCTS ORDERED with ORDERS I get an erroneous count. I finally resigned myself to getting all the info I needed with separate queries and then trying to combine them with a query of queries. This worked fine until the last query of queries which timed out with no results. I am a newbie and would appreciate any constructive help with this. I am including my queries below as well;
<cfquery name="qGetOrders" datasource="manna_premier">
SELECT Count(Orders.ID) AS CountOfID,
Orders.UserID AS Orders_UserID,
Users.UserID AS Users_UserID,
Users.TMName
FROM Users INNER JOIN Orders ON Users.[UserID] = Orders.[UserID]
GROUP BY Orders.UserID, Users.UserID, Users.TMName;
</cfquery>
<cfquery name="qGetSalesCalls" datasource="manna_premier">
SELECT Count(Sales_Calls.ID) AS CountOfID,
Users.UserID AS Users_UserID,
Users.TMName,
Sales_Calls.UserID AS Sales_Calls_UserID
FROM Users INNER JOIN Sales_Calls ON Users.[UserID] = Sales_Calls.[UserID]
GROUP BY Sales_Calls.UserID, Users.UserID, Users.TMName;
</cfquery>
<cfquery name="qGetProducts" datasource="manna_premier">
SELECT Count(ProductOrders.OrderID) AS CountOfOrderID,
Sum(ProductOrders.Quantity) AS SumOfQuantity,
Sum(ProductOrders.NewExisting) AS SumOfNewExisting,
ProductOrders.UserID
FROM Orders INNER JOIN ProductOrders ON Orders.[ID] = ProductOrders.[OrderID]
GROUP BY ProductOrders.UserID;
</cfquery>
<cfquery name="qqCombOrd_Prod" dbtype="query">
SELECT *
FROM qGetOrders, qGetProducts
</cfquery>
<cfquery name="qqCombOrd_ProdtoSales" dbtype="query">
SELECT *
FROM qqCombOrd_Prod, qGetSalesCalls
</cfquery>
PLEASE HELP!!! I'm about to go scouting for bridges to leap from!You might be able to simplify that query by getting rid of the subqueries. Something like this
SELECT TerritoryManager
, count(sc.userid) totalcalls
, sum(po.quantity) total
, sum(newexisting) totalnew
, count(o.userid) totalorders
from users u join salescalls sc on u.userid = sc.userid
join orders o on u.userid = o.userid
join productorders po on u.userid = po.userid
where userzone = 'CENTRAL' -
A strange query of queries bug in CF11?
Hi,
I have this strange query of queries result that could be a bug in CF11. The result is fine in CF10.
Basically, I have 2 queries, qrA and qrB. I do a join of the two in joinQr, after which I do a query of qrA. Since I didn't alter qrA in any way, I would expect newQrA to give me the same result as qrA. However it only gives me one row ("D"). Now, here's the strange thing: If I start off qrA with the letters in ascending order ["A", "B", "C", "D"], then newQrA gives me the right result.
<cfset qrA = queryNew("")>
<cfset queryAddColumn( qrA, "size", "varchar", [ "D", "A", "B", "C" ] )>
<cfset qrB = queryNew("")>
<cfset queryAddColumn( qrB, "size", "varchar", [ "A" ] )>
<cfset queryAddColumn( qrB, "quantity", "integer", [ 0 ] )>
<cfquery name="joinQr" dbtype="query">
select qrA.*, qrB.quantity
from qrA, qrB
where qrA.size = qrB.size
</cfquery>
<cfquery name="newQrA" dbtype="query">
select *
from qrA
</cfquery>
<cfdump var="#qrA#">
<cfdump var="#qrB#">
<cfdump var="#joinQr#">
<cfdump var="#newQrA#">For your interest, by coincidence, my first test was with
<cfset queryAddColumn( qrA, "size", "varchar", [ "A","B","C","D" ] )>
It turns out that the order "A","B","C","D" works, whereas "D","A","B","C" fails. Quite funny, really. -
Query of queries disallows SQL right() function
We're attempting to do a query of queries using the SQL
right() function like this:
select *
from getresults
where right([key],charindex('\',reverse([key]),1)-1) not in
(#quotedvaluelist(getexcluded.file_name)#)
We've even replaced that where clause with a much more simple
where right([key])='m'
just to make sure that it wasn't the nesting functions that
were causing the problem.
In either case, we get the error:
Query of Queries syntax error.
Encountered "right" at line 0, column 0. Incorrect
conditional expression,
Expected one of [like|null|between|in|comparison] condition,
What SQL functions are disallowed from query of queries?
Thanks,
KrisNasty stuff huh. Just happened to discover myself today that
Left doesn't work. I'd suspect that Aggregate functions are the
ONLY ones that will work. It would have been nice if they'd at
least allowed CF vs DB functions in their own "database" language.
BTW, also discovered that Count() returns Null rather than 0
when there aren't any per your WHERE clause. -
Query Of Queries : Error When Trying To Fake Left Outer Join
Hi there
I am trying to replicate a left outer join, combining two query of queries using a method I located here
However, I keep getting an error message..
Here is the code I am using....
<cfquery dbtype="query" name="qry">
SELECT *
FROM returnQry, returnQry2
WHERE returnQry.mediumImage = returnQry2.mediumImage
ORDER BY returnQry.name
</cfquery>
<cfquery name="returnQry3" dbtype="#application.mx#">
SELECT *
FROM trackmeanings AS t
</cfquery>
<cfquery dbtype="query" name="endQry">
SELECT name,nameRcd,mediumImage, COUNT(sMessage) AS comments
FROM qry, returnQry3
WHERE qry.name = returnQry3.sNameTrack
UNION
SELECT name,nameRcd,mediumImage, COUNT(sMessage) AS comments
FROM qry, returnQry3
WHERE #qry.name# NOT IN (#QuotedValueList(returnQry3.sNameTrack)#)
GROUP BY name,nameRcd,mediumImage
</cfquery>
When I try to use the query output in a page, i get the error message "Incorrect conditional expression, Expected one of [like|null|between|in|comparison] condition"
Would anyone have any ideas?
Many thanksActually , spoke a little too soon, my query now seems to be outputting duplicates when the value is found on both sides of the union, my group by clause doesnt seem to be eliminating them like it usually does.
My SELECT code now reads
<cfquery dbtype="query" name="endQry">
SELECT name,nameRcd,mediumImage, COUNT(sMessage) AS comments
FROM qry, returnQry3
WHERE qry.name = returnQry3.sNameTrack
GROUP BY name,nameRcd,mediumImage
UNION
SELECT name,nameRcd,mediumImage, 0 AS comments
FROM qry
WHERE qry.name NOT IN (<cfqueryparam
value="#returnQry3.sNameTrack#"
cfsqltype="cf_sql_varchar"
list="yes"
/>)
GROUP BY name,nameRcd,mediumImage
ORDER BY name DESC
</cfquery>
and my ouput...is producing duplicates
<cfoutput query="rc.qryTopTracks" group="name">
#rc.qryTopTracks.name#
</cfoutput>
Would you have any idea of how to eliminate them here? Thanks
Maybe you are looking for
-
My old computer crashed and I got a new laptop but none of my music that is still on my Ipod will show up in Itunes. I don't know how to get it to import. Whenever I select the Ipod folder through my computer to Import my data nothing shows up. All m
-
How can I turn off Signing in panel at PS start up?
Hi, I am a paying customer. Every time I start my computer and I open PS, for one week now I have to sign up every time. And the application says that I have a trial version of PS and LR!!! How can I stop this? Moreover, in 2013 I BOUGHT LR 5, before
-
Mismatch column name in report viewer and PDF export?
I have text box in the header and populated dynamically. If my query result is more than 1 page, when i go to next page, the column value will change but when i export it to PDF or Word, only the column value of the first page will appear. Please see
-
Print Invoice Header Text In Main Window of Smartforms
Helo Gurus !!! I want to print Invoice header text in main window of smartform. There are total 5 columns. Item Quantity Description UnitPrice Amount Now what I want is to print header text below Description column, there i
-
[SOLVED] ff4: Thunderbid doesn't open email links in ff anymore
Hi guys, I used to have thunderbird open links with firefox but after the today update to firefox 4 the links on Thunderbird emails aren't opened anymore with Firefox. Basically, when I click on a link of thunderbird nothing happens.. Any idea? Thank