我正在使用mySql 5.1。我遇到了麻煩。以下查詢工作正常。我想用數據庫中的值替換常數值100就相應的SID。但我不知道該怎麼做。從多個表中乘以數值MySQL
INSERT INTO ResultTable(SID,Date,Result)
SELECT SID,DATE(`Time`),(MAX(SValue)-MIN(SValue))* 100
FROM table1
GROUP BY Date(`Time`),SID;
Table 1
------------------------------------------
SID Time SValue
------------------------------------------
7 2013-05-06 12:06:17 5668
8 2013-04-10 16:17:49 11434.9
8 2013-04-10 16:18:54 11435.5
7 2013-04-10 16:21:04 11436.8
7 2013-04-10 16:22:09 11437.4
8 2013-04-10 16:25:24 11439.2
Table2
---------------------
SID EValue
---------------------
7 10
8 100
Result Table
------------------------------------------
SID Date Result
------------------------------------------
7 2013-05-06 56680
8 2013-04-10 1143490
8 2013-04-10 1143550
7 2013-04-10 114368
7 2013-04-10 114374
8 2013-04-10 1143920
現有的查詢:
SELECT SID,DATE(`Time`),(MAX(SValue)-MIN(SValue))* 100
FROM table1
GROUP BY Date(`Time`),SID;
我的查詢:
select (h1.EValue * ss.SValue) AS Emission
from Table2 h1
inner join (
select SID, (MAX(SValue)-MIN(SValue)) AS SValue
from Table1
group by Date(`Time`), SID
) ss on h1.SID = ss.SID
但我查詢了一些額外的價值。我的問題是
我在做什麼錯在這裏?
爲什麼會有額外的值?
有沒有更好的方法來做到這一點?
任何幫助將不勝感激..
在您的示例中,結果似乎與您的查詢不匹配。 'Date('Time')'函數會從日期中刪除時間。在你的結果中,日期有時間。 – Tom
@Tom:感謝您的快速回復。這是我的錯誤。我已更新問題 – Anand
您的示例結果仍與您提供的原始查詢不匹配。這是讓事情變得混亂的原因。在你給出的原始查詢中,每個Date/SID組合將只有一個值(因爲你的「GROUP BY」子句)。在您的結果中,您對同一個日期/ SID有多個結果。如果這些匹配,就會更容易知道你在找什麼。 – Tom