gpt4 book ai didi

mysql - 在 mySQL 查询中使用条件

转载 作者:行者123 更新时间:2023-11-29 07:30:58 24 4
gpt4 key购买 nike

我需要在我的 mySQL 查询中有一个基于查询结果的条件。

SELECT 返回给我 IVC_Recipient,我想使用此数据来制定条件。但它不起作用。

这是查询:

SELECT 
KDX_Id,
KDX_Name,
KDX_FirstName,
KDX_Company,
BOO_Id,
DEB_Date,
IFNULL(SUM(IVC_Sum + IVC_Taxes), 0) AS DEB_Total,
DATEDIFF('2018-07-10', DEB_Date) AS DEB_Nb_Days,
IVC_Recipient
FROM ___Debtors
JOIN ___Invoices
ON ___Invoices.IVC_Id = ___Debtors.DEB_InvoiceId
JOIN ___Bookings
ON ___Bookings.BOO_Id = ___Invoices.IVC_BookingId


IF(IVC_Recipient = 'guest') {
JOIN ___Kardex
ON ___Kardex.KDX_Id = ___Bookings.BOO_GuestId
}

IF(IVC_Recipient = 'company') {
JOIN ___Kardex
ON ___Kardex.KDX_Id = ___Bookings.BOO_CompanyId
}

请问我在这里遗漏了什么?

谢谢。

最佳答案

您可以使用CASE 表达式:

SELECT 
KDX_Id,
KDX_Name,
KDX_FirstName,
KDX_Company,
BOO_Id,
DEB_Date,
IFNULL(SUM(IVC_Sum + IVC_Taxes), 0) AS DEB_Total, -- there is no GROUP BY
DATEDIFF('2018-07-10', DEB_Date) AS DEB_Nb_Days,
IVC_Recipient
FROM ___Debtors
JOIN ___Invoices
ON ___Invoices.IVC_Id = ___Debtors.DEB_InvoiceId
JOIN ___Bookings
ON ___Bookings.BOO_Id = ___Invoices.IVC_BookingId
JOIN ___Kardex
ON ___Kardex.KDX_Id = (CASE
WHEN IVC_Recipient = 'guest' THEN ___Bookings.BOO_GuestId
WHEN IVC_Recipient = 'company' THEN ___Bookings.BOO_CompanyId
END)

关于mysql - 在 mySQL 查询中使用条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51271887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com