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. Group By All Columns except the image field

Group By All Columns except the image field

Scheduled Pinned Locked Moved Database
csharpasp-netdatabasecom
3 Posts 2 Posters 0 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.
  • V Offline
    V Offline
    Vimalsoft Pty Ltd
    wrote on last edited by
    #1

    Good evening all i have an image in my select fields, and i know that the Group by clause cant take the Image field, i have a query that looks like this

    SELECT
    K.KIDID,
    K.STUDENTNUMBER,
    KIDNAME,
    KIDLASTNAME ,
    SC.SCHOOLNAME ,
    KIDGRADE ,
    KIDCLASS ,
    SC.SCHOOLID,
    k.TEMP_BARCODE,
    PHOTO,
    A.ACCOUNTID
    ,SUM(TRANSACTION_AMOUNT) AS [BALANCE]
    FROM
    KIDS_DETAILS K
    INNER JOIN SCHOOL SC
    ON K.SCHOOLID = SC.SCHOOLID
    INNER JOIN PARENTKID PK
    ON PK.KIDID = K.KIDID
    INNER JOIN USERS U
    ON U.USERID = K.USERID
    INNER JOIN ACCOUNTS A
    ON A.USERID = U.USERID
    INNER JOIN ACCOUNTRANSATIONS AT
    ON AT.ACCOUNTID = A.ACCOUNTID
    LEFT OUTER JOIN KIDSPHOTO KP
    ON KP.KIDID = K.KIDID

    GROUP BY
    K.KIDID,
    K.STUDENTNUMBER,
    KIDNAME,
    KIDLASTNAME ,
    SC.SCHOOLNAME ,
    KIDGRADE ,
    KIDCLASS ,
    SC.SCHOOLID,
    k.TEMP_BARCODE,
    A.ACCOUNTID,
    PHOTO

    now as you can see there is a part where i sum , but now i have a PHOTO column, how can i remove this with out getting the common exception that will tell me that Photo is not in

    Column 'KIDSPHOTO.PHOTO' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

    and if i include it i will get the group by Clause limitation of the Type Text , image

    Msg 306, Level 16, State 2, Line 40
    The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.

    Vuyiswa Maseko, Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code. C#/VB.NET/ASP.NET/SQL7/2000/2005/2008 http://www.vuyiswamaseko.com vuyiswa@its.co.za http://www.itsabacus.co.za/itsabacus/

    V 1 Reply Last reply
    0
    • V Vimalsoft Pty Ltd

      Good evening all i have an image in my select fields, and i know that the Group by clause cant take the Image field, i have a query that looks like this

      SELECT
      K.KIDID,
      K.STUDENTNUMBER,
      KIDNAME,
      KIDLASTNAME ,
      SC.SCHOOLNAME ,
      KIDGRADE ,
      KIDCLASS ,
      SC.SCHOOLID,
      k.TEMP_BARCODE,
      PHOTO,
      A.ACCOUNTID
      ,SUM(TRANSACTION_AMOUNT) AS [BALANCE]
      FROM
      KIDS_DETAILS K
      INNER JOIN SCHOOL SC
      ON K.SCHOOLID = SC.SCHOOLID
      INNER JOIN PARENTKID PK
      ON PK.KIDID = K.KIDID
      INNER JOIN USERS U
      ON U.USERID = K.USERID
      INNER JOIN ACCOUNTS A
      ON A.USERID = U.USERID
      INNER JOIN ACCOUNTRANSATIONS AT
      ON AT.ACCOUNTID = A.ACCOUNTID
      LEFT OUTER JOIN KIDSPHOTO KP
      ON KP.KIDID = K.KIDID

      GROUP BY
      K.KIDID,
      K.STUDENTNUMBER,
      KIDNAME,
      KIDLASTNAME ,
      SC.SCHOOLNAME ,
      KIDGRADE ,
      KIDCLASS ,
      SC.SCHOOLID,
      k.TEMP_BARCODE,
      A.ACCOUNTID,
      PHOTO

      now as you can see there is a part where i sum , but now i have a PHOTO column, how can i remove this with out getting the common exception that will tell me that Photo is not in

      Column 'KIDSPHOTO.PHOTO' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

      and if i include it i will get the group by Clause limitation of the Type Text , image

      Msg 306, Level 16, State 2, Line 40
      The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.

      Vuyiswa Maseko, Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code. C#/VB.NET/ASP.NET/SQL7/2000/2005/2008 http://www.vuyiswamaseko.com vuyiswa@its.co.za http://www.itsabacus.co.za/itsabacus/

      V Offline
      V Offline
      Vimalsoft Pty Ltd
      wrote on last edited by
      #2

      I got a Solution by casting the Field

      Select
      KIDID,
      STUDENTNUMBER,
      KIDNAME,
      KIDLASTNAME ,
      SCHOOLNAME ,
      KIDGRADE ,
      KIDCLASS ,
      SCHOOLID,
      TEMP_BARCODE,
      Cast(PHOTO as Image) as [PHOTO],
      ACCOUNTID,
      Balance
      From
      (
      SELECT
      K.KIDID,
      K.STUDENTNUMBER,
      KIDNAME,
      KIDLASTNAME ,
      SC.SCHOOLNAME ,
      KIDGRADE ,
      KIDCLASS ,
      SC.SCHOOLID,
      k.TEMP_BARCODE,
      Cast(PHOTO as Varbinary) Photo, ---- Some Changes
      A.ACCOUNTID
      ,SUM(TRANSACTION_AMOUNT) AS [BALANCE]
      FROM
      KIDS_DETAILS K
      INNER JOIN SCHOOL SC
      ON K.SCHOOLID = SC.SCHOOLID
      INNER JOIN PARENTKID PK
      ON PK.KIDID = K.KIDID
      INNER JOIN USERS U
      ON U.USERID = K.USERID
      INNER JOIN ACCOUNTS A
      ON A.USERID = U.USERID
      INNER JOIN ACCOUNTRANSATIONS AT
      ON AT.ACCOUNTID = A.ACCOUNTID
      LEFT OUTER JOIN KIDSPHOTO KP
      ON KP.KIDID = K.KIDID
      Group by
      K.KIDID,
      K.STUDENTNUMBER,
      KIDNAME,
      KIDLASTNAME ,
      SC.SCHOOLNAME ,
      KIDGRADE ,
      KIDCLASS ,
      SC.SCHOOLID,
      k.TEMP_BARCODE,
      Cast(PHOTO as Varbinary),
      A.ACCOUNTID
      ) X

      Vuyiswa Maseko, Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code. C#/VB.NET/ASP.NET/SQL7/2000/2005/2008 http://www.vuyiswamaseko.com vuyiswa@its.co.za http://www.itsabacus.co.za/itsabacus/

      L 1 Reply Last reply
      0
      • V Vimalsoft Pty Ltd

        I got a Solution by casting the Field

        Select
        KIDID,
        STUDENTNUMBER,
        KIDNAME,
        KIDLASTNAME ,
        SCHOOLNAME ,
        KIDGRADE ,
        KIDCLASS ,
        SCHOOLID,
        TEMP_BARCODE,
        Cast(PHOTO as Image) as [PHOTO],
        ACCOUNTID,
        Balance
        From
        (
        SELECT
        K.KIDID,
        K.STUDENTNUMBER,
        KIDNAME,
        KIDLASTNAME ,
        SC.SCHOOLNAME ,
        KIDGRADE ,
        KIDCLASS ,
        SC.SCHOOLID,
        k.TEMP_BARCODE,
        Cast(PHOTO as Varbinary) Photo, ---- Some Changes
        A.ACCOUNTID
        ,SUM(TRANSACTION_AMOUNT) AS [BALANCE]
        FROM
        KIDS_DETAILS K
        INNER JOIN SCHOOL SC
        ON K.SCHOOLID = SC.SCHOOLID
        INNER JOIN PARENTKID PK
        ON PK.KIDID = K.KIDID
        INNER JOIN USERS U
        ON U.USERID = K.USERID
        INNER JOIN ACCOUNTS A
        ON A.USERID = U.USERID
        INNER JOIN ACCOUNTRANSATIONS AT
        ON AT.ACCOUNTID = A.ACCOUNTID
        LEFT OUTER JOIN KIDSPHOTO KP
        ON KP.KIDID = K.KIDID
        Group by
        K.KIDID,
        K.STUDENTNUMBER,
        KIDNAME,
        KIDLASTNAME ,
        SC.SCHOOLNAME ,
        KIDGRADE ,
        KIDCLASS ,
        SC.SCHOOLID,
        k.TEMP_BARCODE,
        Cast(PHOTO as Varbinary),
        A.ACCOUNTID
        ) X

        Vuyiswa Maseko, Spoted in Daniweb-- Sorry to rant. I hate websites. They are just wierd. They don't behave like normal code. C#/VB.NET/ASP.NET/SQL7/2000/2005/2008 http://www.vuyiswamaseko.com vuyiswa@its.co.za http://www.itsabacus.co.za/itsabacus/

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #3

        Alternatively, you can use this. I'm assuming that the column PHOTO is in the USER table. I see that some of the columns in the query have not been prefixed with an alias, it is always a better practise to prefix all column names with alias, it improves performance too...

        SELECT
        K.KIDID,
        K.STUDENTNUMBER,
        KIDNAME,
        KIDLASTNAME ,
        SC.SCHOOLNAME ,
        KIDGRADE ,
        KIDCLASS ,
        SC.SCHOOLID,
        k.TEMP_BARCODE,
        (SELECT PHOTO FROM USER UP WHERE U.USERID = UP.USERID) AS PHOTO,
        A.ACCOUNTID
        ,SUM(TRANSACTION_AMOUNT) AS [BALANCE]
        FROM
        KIDS_DETAILS K
        INNER JOIN SCHOOL SC
        ON K.SCHOOLID = SC.SCHOOLID
        INNER JOIN PARENTKID PK
        ON PK.KIDID = K.KIDID
        INNER JOIN USERS U
        ON U.USERID = K.USERID
        INNER JOIN ACCOUNTS A
        ON A.USERID = U.USERID
        INNER JOIN ACCOUNTRANSATIONS AT
        ON AT.ACCOUNTID = A.ACCOUNTID
        LEFT OUTER JOIN KIDSPHOTO KP
        ON KP.KIDID = K.KIDID

        GROUP BY
        K.KIDID,
        K.STUDENTNUMBER,
        KIDNAME,
        KIDLASTNAME ,
        SC.SCHOOLNAME ,
        KIDGRADE ,
        KIDCLASS ,
        SC.SCHOOLID,
        k.TEMP_BARCODE,
        A.ACCOUNTID

        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