簡體   English   中英

MySQL運行平衡視圖錯誤

[英]MySQL Running Balance View Error

您好我正在嘗試在MySQL中創建一個視圖,但我收到語法錯誤#1064即

1064 - 您的SQL語法出錯; 檢查與您的MySQL服務器版本對應的手冊>在'SET @csum:= 0附近使用正確的語法; 在第3行

在這里我如何解決這個變量問題任何解決方案或替代方法輕松計算運行平衡

這是我的代碼

SET @csum := 0;
SELECT
tblleasesalesschedule_details.LeaseSaleID,
tblleasesalesschedule_details.ScheduleSr,
tblleasesalesschedule_details.InstallmentName,
tblleasesalesschedule_details.InstallmentSr,
tblleasesalesschedule_details.ScheduleDate,
tblleasesalesschedule_details.Amount,
IFNULL(tblleasesalespayment.Amount, 0) AS AmountPaid,
(coalesce(tblleasesalesschedule_details.Amount, 0) - coalesce(tblleasesalespayment.Amount, 0)) As BalanceAmount,
(@csum := @csum + (coalesce(tblleasesalesschedule_details.Amount, 0) - coalesce(tblleasesalespayment.Amount, 0))) as RunningBalance,
tblleasesalespayment.PaymentDate
FROM
tblleasesalespayment
RIGHT JOIN tblleasesalesschedule_details ON tblleasesalesschedule_details.InstallmentSr = tblleasesalespayment.InstallmentSr
WHERE
tblleasesalesschedule_details.PayDate < NOW();

你應該避免使用var中的視圖

視圖定義受以下限制:(來自Mysql Doc) http://dev.mysql.com/doc/refman/5.6/en/create-view.html

SELECT語句不能在FROM子句中包含子查詢。

SELECT語句不能引用系統變量或用戶定義的變量。

在存儲的程序中,SELECT語句不能引用程序參數或局部變量。

SELECT語句不能引用預准備語句參數。

定義中引用的任何表或視圖都必須存在。 如果在創建視圖后,刪除了定義引用的表或視圖,則使用該視圖會導致錯誤。 要檢查此類問題的視圖定義,請使用CHECK TABLE語句。

該定義不能引用TEMPORARY表,也不能創建TEMPORARY視圖。

您無法將觸發器與視圖相關聯。

將檢查SELECT語句中列名稱的別名,最大列長度為64個字符(不是最大別名長度為256個字符)。

如果您需要使用param,請查看函數或過程http://dev.mysql.com/doc/refman/5.7/en/create-procedure.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM