mysql条件根据某些条件验证数据

时间:2019-12-27 05:02:32

标签: mysql sql

我有两个表,分别是bookingledger

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 个答案:

答案 0 :(得分:0)

好了,我的第一个建议是您不应该使用带字的付款方式。你可以做的是给一个数字作为例子 首付= 1   分期付款= 2 因此,当您使用它们时,您可以从它们中取出条件 对于您的查询问题,可以使用IF

SELECT IF(PaymentType=='Down Payment',10000,7500) AS Dueamount FROM TableName;

如果您要更改我的建议

   SELECT IF(PaymentType==1,10000,7500) AS Dueamount FROM TableName;

原因是假设某处会有额外的空间,但是考虑到这些空间,您仍然看不到它仍在编程,因此需要花费一些时间来注意到该空间,因此请使用number代替它,这是数据库异常< / p>