Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8711209
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T04:49:04+00:00 2026-06-13T04:49:04+00:00

I have syntax error when I use declare : delimiter $$ begin declare @StartDay

  • 0

I have syntax error when I use “declare” :

 delimiter $$
  begin

 declare @StartDay INT, @EndDay INT, @StartMonth INT, @EndMonth INT
 Select @StartDay = 01, @StartMonth = 10, @EndDay = 30, @EndMonth = 09

 Select year(a.created_at) as years , jd.JobDomain, count(a.Id) as nb_answer,   a.Job_id,   j.JobTitle 
 from JobAppliance a
 inner join Job j on a.Job_id =  j.PublicId
 inner join JobDestination d on j.Id=d.Job_id
 inner join Jjobdomain jd on  j.Id = jd.Job_id

 and 
 (
 @StartMonth = @EndMonth And 
 Month(a.created_at) = @StartMonth And 
 Day(a.created_at) >= @StartDay And 
 Day(a.created_at) <= @EndDay
 ) Or (
 @StartMonth != @EndMonth And (
 (
 Month(a.created_at) = @StartMonth And
 Day(a.created_at) >= @StartDay
 ) Or (
 Month(a.created_at) Between @StartMonth + 1 And @EndMonth - 1
 ) Or (
 Month(a.created_at) = @EndMonth And
 Day(a.created_at) <= @EndDay
 )
 )
)

group by year(a.created_at) , a.Job_id, j.JobTitle;

end$$
delimiter ;

Im using Mysql workbench

edit :

You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server version 
for the right syntax to use near 
'@StartDay int, @EndDay int, @StartMonth int, 
     @EndMonth intSelect @StartDay = 0' at line 3
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T04:49:05+00:00Added an answer on June 13, 2026 at 4:49 am

    You missed the Line Delimiter

    DELIMITER $$
    
    DECLARE MyVal INT$$
    
    SELECT
    ...
    $$
    
    DELIMITER ;
    

    On the Other hand, why do you have to change the Delimiter?

    And Declare should only be used between BEGIN and END as stated in the Documentation.
    So if you are not using this part in a stored procedure (e.g. a simple Query) you can’t use DECLARE

    All Variables starting with an @ are Session Variables and do not need to be declared.

    So here is a copy’n’paste for you

    SET @StartDay = 01, @StartMonth = 10, @EndDay = 30, @EndMonth = 09; -- look here the ;
    
    Select year(a.created_at) as years , jd.JobDomain, count(a.Id) as nb_answer,   a.Job_id,   j.JobTitle 
    from JobAppliance a
    inner join Job j on a.Job_id =  j.PublicId
    inner join JobDestination d on j.Id=d.Job_id
    inner join Jjobdomain jd on  j.Id = jd.Job_id
    
    and 
    (
    @StartMonth = @EndMonth And 
    Month(a.created_at) = @StartMonth And 
    Day(a.created_at) >= @StartDay And 
    Day(a.created_at) <= @EndDay
    ) Or (
    @StartMonth != @EndMonth And (
    (
    Month(a.created_at) = @StartMonth And
    Day(a.created_at) >= @StartDay
    ) Or (
    Month(a.created_at) Between @StartMonth + 1 And @EndMonth - 1
    ) Or (
    Month(a.created_at) = @EndMonth And
    Day(a.created_at) <= @EndDay
    )
    )
    )
    
    group by year(a.created_at) , a.Job_id, j.JobTitle;
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a syntax error that I don't know how to fix. This is
I have JPA entities as outlined here: QueryDSL JPA syntax error with contains on
Perhaps it's a syntax error, but I never assume that. I have a -dead-
I most likely have a syntax issue (SQL command and error copied below) -
You have an error in your SQL syntax; check the manual that corresponds to
Notice: You have an error in your SQL syntax; check the manual that corresponds
I get: You have an error in your SQL syntax; check the manual that
Error is: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual
I'm just wondering where this syntax documented: 1 > 2 || raise(error) I have
DROP FUNCTION IF EXISTS bramkiStracone; CREATE FUNCTION bramkiStracone(idDruzyny INT) RETURNS int(11) DETERMINISTIC BEGIN DECLARE

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.