简体   繁体   中英

SQL - The used select statement have a different number of colums

I'm trying to make my first function, it creates without any error, but, when I try to use it it gives me error.

Here's the function -

    CREATE FUNCTION isie_kontakti (condition CHAR(3)) 
    RETURNS CHAR(100) 
    BEGIN 
    DECLARE returnthis CHAR(100); 
    SELECT DISTINCT Person.name, Person.lastName, Contacts.mobile, Contacts.email 
    FROM Person JOIN Contacts on Contacts.Person_ID = Person.ID 
    JOIN ParentChild on ParentChild.parentID = Person.ID 
    JOIN ChildGroup ON ChildGroup.Person_ID = ParentChild.childID 
    WHERE ChildGroup.Group_ID = 'condition' INTO returnthis; 
    RETURN returnthis; 
    END//

Table schema - http://www.imagesup.net/dm-713886347846.png

You create your function to return a single column of type char(100) yet the returnthis item contains quite a few columns.

You need to match up your query and return type.

How you do that depends on what you're trying to achieve. It's possibly as simple as just concatenating the columns from the select into a single variable, something along the lines of (untested since I don't have my DBMS available at the moment):

SELECT Person.name     | ' '
     | Person.lastName | ' '
     | Contacts.mobile | ' '
     | Contacts.email
  FROM ...

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM