This article presents the most commonly used JQL queries using various functions. This material is convenient to have on hand when you need to create complex JQL queries for projects in JIRA. First of all the information will be useful to managers and team leads. This article contains examples of requests that I most often use in my daily project activities.
Important: some requests require the installation of the
Adaptavist ScriptRunner plugin
Link types (linkedIssuesOf and hasLinks)
Output of all issues that are blocked (have a “blocked by” connection type) with a specific issue (here an entity with ID TESTPROJECT-123)
issueFunction in linkedIssuesOf("TESTPROJECT-123") AND issueFunction in hasLinks("blocked by")
Link to other filters
Output all issues of a specific filter:
')
filter = " "
It must be remembered that if you plan to use filters not only for yourself, you need to “fumble” for the right users.
Print all subtasks from entities that are output by a particular filter.
issueFunction in subtasksOf ( ' filter=" " ')
MembersOf function (work with groups)
Print all the tasks in the TESTPROJECT project that were created by the user (specified by the Reporter) in the “CompanyName” group:
Project=TESTPROJECT AND reporter in membersOf(CompanyName)
Work with dates and time intervals
Print everything that was created before February 1, 2017 inclusive:
created<="2017/02/01"
Print everything that was updated from July 16, 2017 to July 22, 2017:
updatedDate < "2017/07/22 00:00" AND updatedDate > "2017/07/16 00:00"
Output all tasks in the project in which the status has changed from In-progress to resolved in the last 7 days:
project in ("TESTPROJECT") AND Status CHANGED FROM ("In Progress") to ("Resolved") DURING (-7d, now())
To specify periods, you can also use intuitive functions: startofweek (), endofweek (), startOfYear (), endOfYear ()
Display all tasks in which the status changed from In-progress to resolved from July 12 to July 22, 2017:
Status CHANGED FROM ("In Progress") to ("Resolved") DURING ("2017/07/12 00:00","2017/07/22 00:00")
Print all tasks that were in In-progress status from July 12 to July 22, 2017:
Status was ("In Progress") DURING ("2017/07/12 00:00","2017/07/22 00:00")
Print all tasks for which assignee changed for the current week for the current user:
assignee CHANGED TO currentUser() DURING (startofweek(), endofweek())
Work with release versions

Current release
fixVersion = earliestUnreleasedVersion()
Future releases
(fixVersion IN unreleasedVersions() and fixVersion != earliestUnreleasedVersion() ) OR fixVersion is EMPTY
Released releases
fixVersion NOT IN unreleasedVersions()
List of useful sources:
Search JIRA like a boss with JQLAdvanced searching - functions referenceAdaptavist ScriptRunner