2015-11-05 180 views
1

一張圖片勝過千言萬語,所以我會告訴你我想要先完成:如何將多個記錄數據連接成一條記錄?

enter image description here

這是較九月份的計劃的報告。

數據從三個表中獲得:僱員,僱員轉移和轉移。

報表的記錄來源屬性使用以下查詢來獲取相應的名稱:

SELECT DISTINCT 
    Employees.Employee_ID, Employees.Last_Name, Employees.First_Name 
FROM 
    Shifts 
INNER JOIN 
    (Employees 
INNER JOIN 
    Employees_Shifts ON Employees.Employee_ID = Employees_Shifts.Employee_ID) 
    ON Shifts.Shift_ID = Employees_Shifts.Shift_ID 
WHERE 
    (((Shifts.Schedule_ID) = 1)) 
ORDER BY 
    Employees.Last_Name; 

所以現在我在真正棘手的部分,我需要填充都使用適當的數據文本框。每個文本框應該保存一個字母:A,B,C,D等。

這些是分配給任何給定Shift的"代號"。您可以同時進行多個班次,但在不同的地點進行。僅供參考,請注意標題中的「第1部分」。我打算在第二次報告中詳細介紹每個班次,您可以在任何給定日期查找字母標識。但這與這個特殊問題無關。

我需要以某種方式查詢"指定"領域的數據庫中的表班次,這樣我可以分配所有的字母:A,B,C,d,等進入相應的框。

例如這樣的查詢的輸出可能是這樣的:

Allen    Nelli  3A,7B,10A,13A,14B,17B,19C,21A 
Barlow_Steeves Donna  1A,3B,7A,13B,18A,23A,25A 
Beno    Wayne  1B,7B,8A,10A,14B,15C 

的數字/字母組合將代表日和指定在一起,使我能以某種方式分配權函到相應的文本框中。 我甚至不知道這是否完全可能使用SQL。我試着用此查詢修補:

SELECT distinct 
    Employees.Employee_ID, Employees.Last_Name, Employees.First_Name, 
    Day(Shifts.Start_Date_Time) & Shifts.Designation AS Expr1 
FROM 
    Shifts 
INNER JOIN 
    (Employees 
INNER JOIN 
    Employees_Shifts ON Employees.Employee_ID = Employees_Shifts.Employee_ID) 
    ON Shifts.Shift_ID = Employees_Shifts.Shift_ID 
WHERE 
    (((Shifts.Schedule_ID) = 1)); 

然而,這給了我下面的輸出:

8 Allen  Nelli  10A 
8 Allen  Nelli  13A 
8 Allen  Nelli  14B 
etc. 

我不想沒有顯示在報告中多次這樣的每一位員工。這就是爲什麼我在原始查詢中使用了DISTINCT運算符。

當然,有一種方法來查詢此數據庫,以便我可以使用其ControlSource屬性在每個文本框中分配適當的字母?甚至只是做一個單獨的查詢,並使用vba代碼將字母賦予每個文本框的Value屬性?

任何援助/方向,將不勝感激。

回答

0

我認爲創建一個基於employeeid的轉移名稱聚合的子查詢對您有好處。使用employee表對此子查詢執行內部連接。彙總指定名稱後,您可以簡單地使用匯總指定而不是「Shifts.Designation」。你可能還需要做一個小組。

+0

我對子查詢沒有任何經驗,但嘗試了以下子查詢:SELECT Day(Shifts.Start_Date_Time)&Shifts.Designation&「,」AS Expr1 FROM SHIFT INNER JOIN(Employees INNER JOIN Employees_Shifts ON Employees .Employee_ID = Employees_Shifts.Employee_ID)ON Shifts。Shift_ID = Employees_Shifts.Shift_ID;不過,我似乎無法制作一個具有多個級聯名稱的唱片節目。我想我需要一些關於子查詢的幫助。預期可能的產出:1B,7B,8A,10A,14B,15C – Alan

+0

我在這個網站上找到了我的問題的答案:http://allenbrowne.com/func-concat.html – Alan