2011-03-30 89 views
0

我的代码:快速的Java SQL问题

String sql = "SELECT Publisher.Name, Book.Title, ShopOrder.OrderDate, SUM(OrderLine.Quantity) AS No_Books, " 
      + "SUM(OrderLine.UnitSellingPrice * Orderline.Quantity) AS Total_Price" 
      + "FROM Publisher, Book, OrderLine, ShopOrder" 
      + "WHERE OrderLine.BookID = Book.BookID AND ShopOrder.ShopOrderID = OrderLine.ShopOrderID AND Publisher.PublisherID = Book.PublisherID AND Publisher.PublisherID = " + id 
      + "GROUP BY book.title, publisher.name, ShopOrder.OrderDate" 
      + "ORDER BY ShopOrder.OrderDate, Book.Title"; 

产生的错误:

syntax error at or near "Publisher" at char position 166 (Just after the FROM clause)

回答

5

即使世界空间丢失

你的字符串是 内容S Total_PriceFROM出版商,Book,OrderLine,ShopOrderWHERE O ...

你应该使用:

String sql = "SELECT Publisher.Name, Book.Title, ShopOrder.OrderDate, SUM(OrderLine.Quantity) AS No_Books, " 
     + " SUM(OrderLine.UnitSellingPrice * Orderline.Quantity) AS Total_Price" 
     + " FROM Publisher, Book, OrderLine, ShopOrder" 
     + " WHERE OrderLine.BookID = Book.BookID AND ShopOrder.ShopOrderID = OrderLine.ShopOrderID AND Publisher.PublisherID = Book.PublisherID AND Publisher.PublisherID = " + id 
     + " GROUP BY book.title, publisher.name, ShopOrder.OrderDate" 
      + " ORDER BY ShopOrder.OrderDate, Book.Title"; 
+0

干杯!愚蠢的错误,我知道哈哈 – user195257 2011-03-30 21:33:21

0

当您连接这些字符串有TOTAL_PRICE之间,从第一号的空间。 和其他行类似。我总是以一个空格结束并开始一个带引号的SQL片段。

0

您需要在行尾或开头处使用空格。由此产生的字符串将如下所示:...AS Total_PriceFROM Publisher...