簡體   English   中英

SQL Query訪問數據庫

[英]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也沒有optagetledlig字段。 要解決此問題,請在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中仍然缺少字段optagetledlig

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.

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