我有两个表,即booking
和ledger
.
booking
表:
BookingID -- RegularPrice -- DownPayment -- PerMonthInstallment
1 100,000 10,000 7,500
ledger
表:
BookingID Voucher -- PaymentType -- Amount
1 1 Down Payment 10,000
1 2 Installment 7,500
当前输出为;
PaymentType -- PerMonthInstallment -- PaidAmount
Down Payment 7,500 7,500
Installment#1 7,500 7,500
我想要的是,如果PaymentType
是预付款然后在 PerMonthInstallment
列,值应为 10,000
而不是7,500
.
PaymentType -- PermonthInstallment -- PaidAmount
Down Payment 10,000 10,000
Installment#1 7,500 7,500
我的查询:
SELECT booking.BookingID,
booking.PerMonthInstallment,
ledger.PaymentType,
ledger.PaidAmount,
ledger.Voucher
from booking
INNER JOIN ledger ON booking.BookingID = ledger.BookingID
最佳答案
好吧,我的第一个建议是您不应该使用文字付款类型。你能做的是你可以给出一个数字作为例子让我们说 首付=1 分期付款=2 所以当你使用它们时你可以从它们那里设置条件 对于您的查询问题,您可以使用 IF
SELECT IF(PaymentType=='Down Payment',10000,7500) AS Dueamount FROM TableName;
如果您要更改我的建议
SELECT IF(PaymentType==1,10000,7500) AS Dueamount FROM TableName;
原因是假设某个地方会有额外的空间,但考虑到这些空间,您看不到它仍在编程,需要一些时间才能注意到该空间,因此使用数字而不是这个,这是数据库异常
关于mysql条件根据特定条件验证数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59496209/