'Count occurrences if and only if the id is the largest of all records in sql
I Have this tables in my database
SAVED_QUESTIONS -> CONFIGURATED QUESTIONS
|ID |
|USERID |
|ANSWER_SELECTED_ID|
TEXT_QUESTIONS -> ALL QUESTIONS
|TEXT_ID |
|YEAR |
|TYPE |
|CODE |
|DESCRIPTION |
QUESTIONS -> SELECT QUESTIONS
|Q_ID |
|QUESTIONID |
|CODE |
USER_ANSWERS -> USER ANSWERS
|UA_ID |
|QUESTIONID |
|ANSWERSID |
ANSWERS -> ALL ANSWERS
|A_ID |
|TEXT_ANSWERS_ID |
|DESCRIPTION |
|CODE |
I have to count how many lines are in my db for a specific answer to a specific question if the answer id is the highest of all but I expect 0 as a result (in the db the id of answer "X" is smaller than answer "Y", but it always returns n> 0)
SELECT COUNT(*) FROM SAVED_QUESTIONS sq
INNER JOIN TEXT_QUESTIONS tq ON tq.TEXT_ID = sq.QUESTIONID and tq.CODE =‘QUEST_XYZ’
INNER JOIN QUESTIONS q ON q.QUESTIONID = sq.QUESTIONID AND a.CODE = ‘FIRST’
INNER JOIN USER_ANSWERS ua ON ua.QUESTIONID = SQ.QUESTIONID
INNER JOIN ANSWERS a ON a.A_ID = sq.ANSWER_SELECTED_ID AND a.CODE = ‘X’
WHERE sq.USERID = 87 AND a.A_ID IN
(SELECT MAX(_a.A_ID) FROM ANSWERS a_ )
Finally this db situation
ID USERID ANSWER_SELECTED_ID TEXT_ID YEAR TYPE CODE DESCRIPTION Q_ID QUESTIONID CODE UA_ID QUESTIONID ANSWERID A_ID TEXT_ANSWERS_ID DESCRIPTION CODE
1 87 1 1 2022 0 QUEST_XYZ QUESTIONARY 1 1 FIRST 1 1 1 1 1 X TRUE ANSWERS
1 87 1 1 2022 0 QUEST_XYZ QUESTIONARY 1 1 FIRST 1 1 1 2 2 Y FAKE ANSWERS
As can be seen from the db, the second answer has a larger id than the first
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
