Sorry, wenn dies eine dumme Frage sein wird, ist es das erste Mal, dass ich mit gespeicherten SQL-Prozeduren arbeiten. Die Frage ist einfach - wie kann ich erklären, ob die Anweisung in SELECT? Um zu zeigen, was ich meine, hier ist ein Code, den ich derzeit haben:SQL Stored procedures wenn Anweisung innerhalb wählen
INSERT INTO @trAll
SELECT tr.EventDateTime
,tr.OrderId
,'EX'
,round(tr.Prod01_CompB_QuantityPV_LTR + tr.Prod01_Fuel_QuantityPV_LTR,0)
,tr.eAD
,tr.OperatorName
--
,cmr.ConsigneeName
,cmr.ConsigneeCompanyCode
,cmr.SenderName
,cmr.SenderCompanyCode
FROM vwTransaction AS tr
inner join tbOrderDetailCMR as cmr
on tr.orderid = cmr.OrderId
WHERE tr.EventDateTime BETWEEN @From
AND @to
AND ProductName = 'BIODIESELZ'
Und das ist, was ich brauche (hoffen, dass Sie verstehen, was ich meine):
INSERT INTO @trAll
SELECT tr.EventDateTime
,tr.OrderId
,'EX'
,round(tr.Prod01_CompB_QuantityPV_LTR + tr.Prod01_Fuel_QuantityPV_LTR+ (if (tr.Prod01_AdditiveA>0) THEN tr.Prod01_AdditiveA ELSE tr.Prod01_AdditiveB),0)
,tr.eAD
,tr.OperatorName
--
,cmr.ConsigneeName
,cmr.ConsigneeCompanyCode
,cmr.SenderName
,cmr.SenderCompanyCode
FROM vwTransaction AS tr
inner join tbOrderDetailCMR as cmr
on tr.orderid = cmr.OrderId
WHERE tr.EventDateTime BETWEEN @From
AND @to
AND ProductName = 'BIODIESELZ'
Kurz gesagt, was ich brauche, ist Hinzufügen von Additiv A, wenn sein Wert größer als 0 ist, sonst AdditivB in der Select-Anweisung.
Welche DBMS verwenden Sie? –