Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Database & SysAdmin
  3. Database
  4. Question Regarding SQL Parameter Query

Question Regarding SQL Parameter Query

Scheduled Pinned Locked Moved Database
databasehelpcsharpquestion
4 Posts 4 Posters 9 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Michele Smith
    wrote on last edited by
    #1

    Hello: I need help with this:

    SELECT *
    FROM
    (SELECT
    CASE
    WHEN InvoiceMonth IN (1,2,3) THEN 1
    WHEN InvoiceMonth IN (4,5,6) THEN 2
    WHEN InvoiceMonth IN (7,8,9) THEN 3
    WHEN InvoiceMonth IN (10,11,12) THEN 4
    END as Quarter
    FROM viewSalesTracker_Model1
    WHERE Quarter = @Quarter

    The error I am receiving is: Error Source: .Net SqlClient Data Provider Error Message: Must declare the scalar variable "@Quarter".

    Z V Richard DeemingR 3 Replies Last reply
    0
    • M Michele Smith

      Hello: I need help with this:

      SELECT *
      FROM
      (SELECT
      CASE
      WHEN InvoiceMonth IN (1,2,3) THEN 1
      WHEN InvoiceMonth IN (4,5,6) THEN 2
      WHEN InvoiceMonth IN (7,8,9) THEN 3
      WHEN InvoiceMonth IN (10,11,12) THEN 4
      END as Quarter
      FROM viewSalesTracker_Model1
      WHERE Quarter = @Quarter

      The error I am receiving is: Error Source: .Net SqlClient Data Provider Error Message: Must declare the scalar variable "@Quarter".

      Z Offline
      Z Offline
      ZurdoDev
      wrote on last edited by
      #2

      It means that the compiler does not know what @Quarter is. You have not declared it anywhere.

      Social Media - A platform that makes it easier for the crazies to find each other. Everyone is born right handed. Only the strongest overcome it. Fight for left-handed rights and hand equality.

      1 Reply Last reply
      0
      • M Michele Smith

        Hello: I need help with this:

        SELECT *
        FROM
        (SELECT
        CASE
        WHEN InvoiceMonth IN (1,2,3) THEN 1
        WHEN InvoiceMonth IN (4,5,6) THEN 2
        WHEN InvoiceMonth IN (7,8,9) THEN 3
        WHEN InvoiceMonth IN (10,11,12) THEN 4
        END as Quarter
        FROM viewSalesTracker_Model1
        WHERE Quarter = @Quarter

        The error I am receiving is: Error Source: .Net SqlClient Data Provider Error Message: Must declare the scalar variable "@Quarter".

        V Offline
        V Offline
        Victor Nijegorodov
        wrote on last edited by
        #3

        Michele Smith wrote:

        Error Source: .Net SqlClient Data Provider Error Message: Must declare the scalar variable "@Quarter".

        Then declare this "@Quarter"variable!

        1 Reply Last reply
        0
        • M Michele Smith

          Hello: I need help with this:

          SELECT *
          FROM
          (SELECT
          CASE
          WHEN InvoiceMonth IN (1,2,3) THEN 1
          WHEN InvoiceMonth IN (4,5,6) THEN 2
          WHEN InvoiceMonth IN (7,8,9) THEN 3
          WHEN InvoiceMonth IN (10,11,12) THEN 4
          END as Quarter
          FROM viewSalesTracker_Model1
          WHERE Quarter = @Quarter

          The error I am receiving is: Error Source: .Net SqlClient Data Provider Error Message: Must declare the scalar variable "@Quarter".

          Richard DeemingR Offline
          Richard DeemingR Offline
          Richard Deeming
          wrote on last edited by
          #4

          Once you've declared the @Quarter variable or parameter, you'll run into another error:

          Invalid column name 'Quarter'.

          You can't reference an alias introduced in the SELECT clause within the WHERE clause of the same statement. You either have to use a sub-query, a common table expression, or duplicate the logic of the alias in the WHERE clause.

          SELECT Quarter
          FROM
          (
          SELECT CASE
          WHEN InvoiceMonth IN (1,2,3) THEN 1
          WHEN InvoiceMonth IN (4,5,6) THEN 2
          WHEN InvoiceMonth IN (7,8,9) THEN 3
          WHEN InvoiceMonth IN (10,11,12) THEN 4
          END As Quarter
          FROM viewSalesTracker_Model1
          )
          WHERE Quarter = @Quarter;

          Or:

          WITH cteQuarters As
          (
          SELECT CASE
          WHEN InvoiceMonth IN (1,2,3) THEN 1
          WHEN InvoiceMonth IN (4,5,6) THEN 2
          WHEN InvoiceMonth IN (7,8,9) THEN 3
          WHEN InvoiceMonth IN (10,11,12) THEN 4
          END As Quarter
          FROM viewSalesTracker_Model1
          )
          SELECT Quarter
          FROM cteQuarters
          WHERE Quarter = @Quarter;

          Or:

          SELECT CASE
          WHEN InvoiceMonth IN (1,2,3) THEN 1
          WHEN InvoiceMonth IN (4,5,6) THEN 2
          WHEN InvoiceMonth IN (7,8,9) THEN 3
          WHEN InvoiceMonth IN (10,11,12) THEN 4
          END As Quarter
          FROM viewSalesTracker_Model1
          WHERE CASE
          WHEN InvoiceMonth IN (1,2,3) THEN 1
          WHEN InvoiceMonth IN (4,5,6) THEN 2
          WHEN InvoiceMonth IN (7,8,9) THEN 3
          WHEN InvoiceMonth IN (10,11,12) THEN 4
          END = @Quarter;


          "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

          "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • World
          • Users
          • Groups