如果前一行与当前行相同,如何更新当前行值。
thentnt行是68,前一行也是68 ..我想更新当前行变为68-20这是48。
同样适用于98-20 = 78。
我有超过1000条这样的记录,无法手动逐一更新记录。
update table1 set DIH_QTY_BALANCE=DIH_QTY_BALANCE-DIH_REORDER_QTY
如何将前一行与当前子句的当前内容相同?
这是Schema +数据: http://pastebin.com/T1tYDT6Y
对于sqlfiddle而言太大了。
任何帮助都会很棒。
答案 0 :(得分:1)
据我所知,MySQL在更新语句中从同一个表中进行选择存在问题。这就是你必须要做的,因为为了更新记录,你必须从同一个表中选择它以前的记录。
因此,创建一个临时表,给它行号,然后通过自联接从中选择,以将每个记录与其先前的记录进行比较。
var arr = new string[7] {
"--start-maximized", "--ignore-certificate-errors", "--disable-popup-blocking", "--disable-default-apps", "--auto-launch-at-startup", "--always-authorize-plugins", "--user-agent= " + FrameGlobals.userAgentValue
};
chromeCapabilities.AddArguments(arr);
WebDriverObj = new ChromeDriver(chromeCapabilities);
答案 1 :(得分:0)
可能是这样的
SELECT DIH_QTY_BALANCE,
(SELECT DIH_QTY_BALANCE FROM example e2
WHERE e2.DIHISTORYID < e1.DIHISTORYID
ORDER BY DIHISTORYID DESC LIMIT 1) as previous_value,
(SELECT value FROM example e3
WHERE e3.DIHISTORYID > e1.DIHISTORYID
ORDER BY DIHISTORYID ASC LIMIT 1) as next_value
FROM example e1