Count function
I am trying to display a count in my HTML table of the number of rows from my recordset. As it is now, I always get a count of 1 no matter what is pulled into the Recordset using this statement:
<% Response.write("Search for BTS ID: " & strUid & " resulted in " & rstSearch.Fields("cnt").Value & " Tickets") %>
cnt is defined in my SQL statement like this:
strSQL = "SELECT Count(TABLE_CASE.ID_NUMBER) as cnt, TABLE_CASE.ID_NUMBER, ...........
.........
........
Set rstSearch = db1.Execute(strSQL)
Any thoughts?
please, show us the entire sql command. it will all depend on your group by clauses obviously.
strSQL = "SELECT Count(TABLE_CASE.ID_NUMBER) as cnt, TABLE_CASE.ID_NUMBER, TABLE_GBST_ELM.TITLE as sev, TABLE_CONDITION.TITLE as cond, TABLE_SPCS_INVOLVED_ELEMENT.X_COMMON_NAME, " _
& "TABLE_SPCS_INVOLVED_ELEMENT.X_REP_ELM_ID, TABLE_SPCS_INVOLVED_ELEMENT.X_REP_ELM_NAME, TABLE_SPCS_INVOLVED_ELEMENT.X_BTS_NAME, " _
& "TABLE_SPCS_INVOLVED_ELEMENT.X_INV_ELM_NAME, TABLE_EMPLOYEE.LAST_NAME, TABLE_EMPLOYEE.FIRST_NAME " _
& "FROM TABLE_CASE, TABLE_CONDITION, TABLE_GBST_ELM, TABLE_SPCS_INVOLVED_ELEMENT, TABLE_USER, TABLE_EMPLOYEE " _
& "WHERE TABLE_CASE.CASE_STATE2CONDITION = TABLE_CONDITION.OBJID " _
& "AND TABLE_CASE.RESPSVRTY2GBST_ELM = TABLE_GBST_ELM.OBJID " _
& "AND TABLE_SPCS_INVOLVED_ELEMENT.INVLVD_ELEMENT2CASE = TABLE_CASE.OBJID " _
& "AND TABLE_CASE.CASE_OWNER2USER = TABLE_USER.OBJID " _
& "AND TABLE_EMPLOYEE.EMPLOYEE2USER = TABLE_USER.OBJID " _
& "AND TABLE_CONDITION.TITLE >= 'Open' " _
& "AND TABLE_SPCS_INVOLVED_ELEMENT.X_BTS_NAME = '" & strUid & "' " _
& "Group by TABLE_CASE.ID_NUMBER, TABLE_GBST_ELM.TITLE, TABLE_CONDITION.TITLE, TABLE_SPCS_INVOLVED_ELEMENT.X_COMMON_NAME, TABLE_SPCS_INVOLVED_ELEMENT.X_REP_ELM_ID, TABLE_SPCS_INVOLVED_ELEMENT.X_REP_ELM_NAME, TABLE_SPCS_INVOLVED_ELEMENT.X_BTS_NAME, TABLE_SPCS_INVOLVED_ELEMENT.X_INV_ELM_NAME, TABLE_EMPLOYEE.LAST_NAME, TABLE_EMPLOYEE.FIRST_NAME " _
& "order by x_rep_elm_id "
Set rstSearch = db1.Execute(strSQL)
hmmm
Just a hunch, but is TABLE_CASE.ID_NUMBER a primary key? What's the table structure look like?
it is one of the Keys. The structure of the DB is really large (over 100 tables)
that's small.
what do you mean "one of the keys". is this a unique key? if so, then it will always return 1. count(unique_id) from table group by unique_id is always 1, by definition.
if we use a distinct, then yes it will be unique
I should also mention that I can do a simple progression on it with:
x = (x+1)
to count through as the RS runs, but for what i'm trying to display on screen I think that using the SQL Count would be best.
then it sounds like it is a primary key. your query is coming back correct, but maybe you could explain further what you mean by "if we use a distinct" distinct is a keyword for a query, not a table. i'm talking about the table structure. if the structure for the table TABLE_CASE says that id_number is a primary key, count has to be 1.
in Table_Case, ID_Number is the unique value.
Sorry, I was confusing with another issue.
If I use a basic x = (x+1) I can get a correct count from the recordset but I believe it will be better to have the SQL query return the count rather than using this method.
so you want to count the number of rows in the result set above? oh ok then!
Code:
strSql = "SELECT COUNT(*) AS CNT FROM TABLE_CASE, TABLE_CONDITION, TABLE_GBST_ELM, TABLE_SPCS_INVOLVED_ELEMENT, TABLE_USER, TABLE_EMPLOYEE " _
& "WHERE TABLE_CASE.CASE_STATE2CONDITION = TABLE_CONDITION.OBJID " _
& "AND TABLE_CASE.RESPSVRTY2GBST_ELM = TABLE_GBST_ELM.OBJID " _
& "AND TABLE_SPCS_INVOLVED_ELEMENT.INVLVD_ELEMENT2CASE = TABLE_CASE.OBJID " _
& "AND TABLE_CASE.CASE_OWNER2USER = TABLE_USER.OBJID " _
& "AND TABLE_EMPLOYEE.EMPLOYEE2USER = TABLE_USER.OBJID " _
& "AND TABLE_CONDITION.TITLE >= 'Open' " _
& "AND TABLE_SPCS_INVOLVED_ELEMENT.X_BTS_NAME = '" & strUid & "' " _
& "Group by TABLE_CASE.ID_NUMBER, TABLE_GBST_ELM.TITLE, TABLE_CONDITION.TITLE, TABLE_SPCS_INVOLVED_ELEMENT.X_COMMON_NAME, TABLE_SPCS_INVOLVED_ELEMENT.X_REP_ELM_ID, TABLE_SPCS_INVOLVED_ELEMENT.X_REP_ELM_NAME, TABLE_SPCS_INVOLVED_ELEMENT.X_BTS_NAME, TABLE_SPCS_INVOLVED_ELEMENT.X_INV_ELM_NAME, TABLE_EMPLOYEE.LAST_NAME, TABLE_EMPLOYEE.FIRST_NAME " _
& "order by x_rep_elm_id "
Set rstSearch = db1.Execute(strSQL)
Basically, to get the # of items in the result set, you use the same tables/where conditions and just count the returns as I did above.
I see, so select all instead of what I was doing with the ID_NUMBER. worked like a champ, thank you very much.
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Posting Permissions
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
Forum Rules
Bookmarks