2011-12-14 44 views
0

我需要你的幫助。選擇特定的列,以及其餘的,但有一定的順序和組

這裏我有一些表:

  1. 位置表:ID,代碼,LOCATIONNAME
  2. 間表:ID,IDLocation,RoomNo
  3. 分配表:ID,IDLocation,RoomNo,AssignDate,AssignMonth ,AssignYear,意達,ItemB,ItemC,....(該項目的列將隨時增加/項列的數目不定)

我想有秩序這個序列的select語句:

Assignment.ID,Location.LocationName,Assignment.AssignDate,Room.RoomNo,並通過Assignment.IDLocation

分組的項目列的其餘的我想出了這個查詢之前:

SELECT Assignment.ID, Location.LocationName, Assignment.AssignDate, Room.RoomNo, * 
FROM Location, Room, Assignment 
WHERE Assignment.IDLocation=Location.ID 
    AND Assignment.HouseNo=Room.ID 
Group By Assignment.IDLocation 

但是我得到這個警告,而不是: 「可以用 '*'選定字段分組」

+0

這是功課嗎? – Sparky 2011-12-14 02:27:06

+0

你想用這個查詢來完成什麼? – UnhandledExcepSean 2011-12-14 02:38:35

+0

不,這是我在課堂項目中使用的查詢... :( – dndthecat 2011-12-14 04:13:26

回答

0

您必須在查詢中指定要分組的列,並且不要使用「*」來選擇其他列。

SELECT Assignment.ID, Location.LocationName, Assignment.AssignDate, Room.RoomNo,coulmn1,etch.. 
FROM Location, Room, Assignment 
WHERE Assignment.IDLocation=Location.ID 
    AND Assignment.HouseNo=Room.ID 
Group By Assignment.IDLocation,Assignment.AssignDate, Room.RoomNo,Column1 

問候

0

從你的描述,我想你只有兩種選擇:

  • 如果即時生成的SQL,您必須通過使用領域的迭代SELECT並將它們放入一個變量中,該變量也用於您的GROUP BY
  • 如果未生成SQL,則只要字段列表發生更改,就必須找到一些方法來修改它。

也就是說,具有字段列表總是增加,從長遠來看不健全的健康 - 你可能想看看你的設計,看看是否一切是理所應當的。