我在創建臨時表時遇到了回合函數的問題。 (嗯,我認爲這是問題無論如何)MySQL回合和子查詢
下面列表中的「EntryGauge」列需要根據數據庫中的另一個值(不同的表格)進行縮放和舍入。
有2個查詢,我想我可以用作子查詢來檢索比例因子和舍入精度值。當我嘗試使用它們(如下圖所示的查詢)出現此錯誤:
「SQL錯誤(1166):不正確的列名稱ROUND(EntryGauge *(SELECT DisplayScaleFactor FROM webreportparametersetup WHERE MachineIdent = 'MAC' 「
我不知道是什麼問題,或者如果我使用子查詢正常,但我真的可以使用一些幫助
DROP TEMPORARY TABLE IF EXISTS LiveFeed;
CREATE TEMPORARY TABLE LiveFeed AS
(
SELECT
MachineIdent,
CoilID,
DATE_FORMAT(StartTime, '%b %d %Y %h:%i %p'),
DATE_FORMAT(EndTime, '%b %d %Y %h:%i %p'),
TIMEDIFF(EndTime, StartTime),
Alloy,
ROUND(EntryGauge * (SELECT DisplayScaleFactor FROM webreportparametersetup WHERE MachineIdent = 'MachineIdent' AND ItemName = 'EntryGauge'), (SELECT DisplayPrecision FROM webreportparametersetup WHERE MachineIdent = 'MachineIdent' AND ItemName = 'EntryGauge')),
ExitGauge,
EntryWidth,
ExitWidth,
CoilDiameter,
CoilLength
FROM Coil
INNER JOIN CoilPass
ON Coil.CoilIdent=CoilPass.CoilIdent
INNER JOIN PassSection
ON CoilPass.PassIdent=PassSection.PassIdent
WHERE PassSection.SectionIdent IN('7965','7966','7967')
);
編輯:只是要清楚什麼計算器重刑需要看上去像:
回合(EntryGauge *比例因子,RoundingPrecision)
1.列是否真的存在? 2.嘗試在使用後命名該列。 'ROUND(EntryGauge *(SELECT DisplayScaleFactor FROM webreportparametersetup WHERE MachineIdent ='MachineIdent'AND ItemName ='EntryGauge'),(SELECT DisplayPrecision FROM webreportparametersetup WHERE MachineIdent ='MachineIdent'AND ItemName ='EntryGauge'))AS EntryGagesRounded,' –
您能在ROUND函數分隔符中運行子查詢,以確認它們是正確的? –
謝謝,這解決了主要問題! –