使用CONCAT SQL时如何为ListBox设置Id值成员

时间:2019-03-31 17:50:12

标签: c# sql winforms

我的查询选择除当前具有活动占用率的所有客户机之外的所有客户机(如果它们具有活动占用率,则它们将具有与占用表的链接,结束日期为NULL)。

我要串联客户端的姓氏和名字来设置列表框项目的DisplayMember,并希望将此项目的ValueMember设置为客户端的ID。

def parent(num):
    def first_child():
        return "Hi, I am Emma"

    def second_child():
        return "Call me Liam"

    if num == 1:
        return first_child
    else:
        return second_child


first = parent(1)
second = parent(2)

print(first)
print(first())

但是,当我运行它时,会收到错误消息“歧义列名'Id'。”

我最好在我的客户表中添加一个“ ActiveOccupancy”列,以避免此问题,或者有没有解决的办法?谢谢。

2 个答案:

答案 0 :(得分:1)

听起来idclient两个表中都有一个名为occupancy的列。系统不知道您的意思是哪一个。通过限定列来告诉它:

...
SELECT client.id,
...

不只是不限定名称(... SELECT id, ...)。

答案 1 :(得分:0)

您需要更改第二个查询,该查询与表Occupancy和 使用table.column而不是在选择中使用column名称

         SELECT Id, CONCAT(LastName, ', ', FirstName) AS Name FROM Client 
        EXCEPT 
        SELECT c.Id, CONCAT(c.LastName, ', ', c.FirstName) AS Name 
         FROM Client c
         RIGHT JOIN Occupancy ON c.Id = Occupancy.Clie
         WHERE Occupancy.EndDate IS NULL ORDER BY c.Name ASC