[英]SQL Query to access database
我正在寫一個數據庫查詢,它會告訴我哪里有停車位。 它僅在7月份使用。
有一個表格顯示所有空格以及當天是否租用。 還有另一張桌子,里面有空格和大小。 我希望能夠選擇在所選時間段內所有日期都可用且具有正確大小的空格。
但是,我遇到了一個問題,只選擇給定時間段內的可用空間。 這是迄今為止的查詢,但它不包含任何與空間大小有關的內容,因為我希望這部分首先工作。
SELECT C.Plads, SUM[C.optaget] C.[ledlig] FROM
(SELECT Plads FROM OptagetPladser AS A Inner JOIN Bådpladser as B ON
A.plads=B.Pladsnummer
WHERE
(A.dato>=" + Startdato + "and A.dato<="+Slutdato+") //checking the time period
and (a.optaget = 0)) //0 means the space is availible
as C
GROUP BY C.Plads
HAVING SUM(C.optaget) >="+ diffResult+")";//diff result is the timespan
目前我收到錯誤
查詢表達式'SUM [C.optaget]'中的語法錯誤(缺少運算符)
有任何想法嗎?
首先,您應該重新編寫SQL查詢 - 它包含太多簡單錯誤。
這里有幾個。
嘗試添加','並在查詢中進行一些更改:
SELECT C.Plads, SUM(C.optaget), C.ledlig FROM
您的子查詢C
也沒有optaget
和ledlig
字段。 要解決此問題,請在sebquery的SELECT
之后添加這些字段
修復語法錯誤:
(A.dato>=" + Startdato + "and A.dato<="+Slutdato+")
應該是:
(A.dato >= " + Startdato + " and A.dato <= "+Slutdato+")
你的上一個雙引號是多余的,也是最后的')'。 去掉它:
HAVING SUM(C.optaget) >= "+ diffResult+" ;//diff result is the timespan
下面是SQL查詢的外觀。 請注意:在子查詢C
中仍然缺少字段optaget
和ledlig
。
SELECT C.Plads, SUM(C.optaget), C.ledlig FROM
(
SELECT Plads FROM OptagetPladser AS A
INNER JOIN Bådpladser as B
ON A.plads = B.Pladsnummer
WHERE (A.dato >= " + Startdato + " AND A.dato <= " + Slutdato + ")
AND (a.optaget = 0)
)
AS C
GROUP BY C.Plads
HAVING SUM(C.optaget) >= " + diffResult + ";
我相信,可能會出現架構或性能問題,但如果沒有表格數據,我無法肯定地說出來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.