ACCESS一對多行,查詢時實現一行多列,SQL語句怎麼寫

時間 2021-10-14 21:23:07

1樓:匿名使用者

select 員工表.姓名,

max(switch(考勤表.日期='週一',出勤,true,'')) as 週一,

max(switch(考勤表.日期='週二',出勤,true,'')) as 週二,

max(switch(考勤表.日期='週三',出勤,true,'')) as 週三,

max(switch(考勤表.日期='週四',出勤,true,'')) as 週四,

max(switch(考勤表.日期='週五',出勤,true,'')) as 週五

from 員工表,考勤表 where 員工表.id=考勤表.員工id

group by 員工表.姓名

2樓:節子不哭

標準的sql語法可以這麼寫,思想上是一樣的,實現上有點出入可以自己改一改,我覺得這樣查詢效率低了好多,為什麼要這樣的結果呢,

select e.name,

(select a.attendace from  attendance_table a where a.id =e.

id and a.week ='monday') monday,

(select a.attendace from  attendance_table a where a.id =e.

id and a.week ='tuesday') tuesday,

(select a.attendace from  attendance_table a where a.id =e.

id and a.week ='wednesday') wednesday,

(select a.attendace from  attendance_table a where a.id =e.

id and a.week ='thursday') thursday,

.........

from employee_table e

3樓:匿名使用者

--因為姓名可能重複,所以不建議用姓名分組,而用id分組

select max(t1.姓名) as 姓名,max(iif(t2.日期='週一',t2.出勤,' ')) as 週一

,max(iif(t2.日期='週二',t2.出勤,' ')) as 週二

,max(iif(t2.日期='週三',t2.出勤,' ')) as 週三

,max(iif(t2.日期='週四',t2.出勤,' ')) as 週四

,max(iif(t2.日期='週五',t2.出勤,' ')) as 週五 from

員工表 t1 left join 考勤表 t2 on t1.id=t2.員工id

group by t1.id

4樓:匿名使用者

其實你可以考慮用transform語句,簡潔多了

access多條sql語句可不可以同時執行?

access多條sql語句可不可以同時執行?

5樓:匿名使用者

同時執行是可以的。

不過你需要建立或引用訪問資料庫。

首先,你必須有自己的資料庫,這沒什麼好說的。在網際網路上有很多**,你可以建立一個或使用別人的xx。accdb檔案(我是別人的)或者新增一個按鈕。

建立->空白**,在圖形介面中,拖動一個按鈕到介面(有許多不同的按鈕,選擇雜項,然後取消)。

然後選擇view->設計檢視,然後右鍵單擊該按鈕,選擇該屬性,然後在右邊出現一個屬性表。找到單擊,單擊後面的省略號按鈕,選擇**生成器,並輸入程式設計介面。

隨後在完成上述步驟的時候,然後你就可以寫你要執行的一系列**了。

access中多個條件查詢的sql語句怎麼寫

6樓:駱駝

我剛回答了一個和你類似的問題,你參考一下!

這個很簡單,可以分以下步驟執行:

1、建立optiont 控制元件組。index分別為0~3

2、建立一個text,並且放置一個command按鈕。

3、放置一個ado控制元件

4、放置一個datagrid控制元件

5、ado連線資料庫(在form_load事件)

6、在command1_click()事件寫下以下**:

adodc1.recordsouce = "select * from 表名 where 1=1"

& iif(opt0.value,"and 姓名 = '" & trim(text1) &"'","")

& iif(opt1.value,"and 性別 = '" & trim(text1) &"'","")

& iif(opt2.value,"and 班級 = '" & trim(text1) &"'","")

& iif(opt3.value,"and ** = '" & trim(text1) &"'","")

adodc1.resfrsh '(這個**我寫的可能不對,老是記不住)

set datagrid1.datasouce = adodc1 '把查詢的結果顯示在**裡。

以上**中的 opt0~opt3 這4個單選框控制元件分別代表 姓名,性別,班級,**。

**的功能是: 如果你點了代表你要查詢的單選框,**就會用你填寫在text裡的字元到資料庫裡去查詢。查詢的結果取決於你選了哪個單選框和text裡的內容,不過鬱悶的是**沒有辦法以這個方式單獨查詢出來,你要查某人的**,以上的**中第一個iif 就可以顯示出來。

以上**可能有個別字母書寫錯誤,但是你只要在vb裡寫,vb會自動提示正確的**。希望能對你有所幫助。

怎樣在access中使用sql語句為一張表新增多行

7樓:不想起名字了

如果民資料**於其他表,則一條語句可完成

如果是其他**,就只能使用**完成

就是用多行

docmd.runsql "insert ........"

具體的,你可以把語句放到一個陣列中,進行迴圈也可以把語句放到另外一個表中

然後用dao物件查詢出來,再迴圈執行

還可以放到一個文字檔案中

用函式取出來迴圈執行等等

8樓:綠衣人敲門

例:alter table dep add column depid int

在access裡,像表dep中增加depid的列,型別為數字

Access兩個表一對多關係如何實現查詢

小開文件鋪 select name,學科,學科成績 from 學生表,成績表where 學生表.name 成績表.name 學生表.name 和 成績表.name 做成一對多的關係,使用上述查詢就可以了。此外,不建議用name作聯絡欄位,最好用一個id欄位,因為name可能會重複。有問題可以找我 t...

sql中一對多關係的查詢結果的多行轉換成一行多列

1 建立測試表,create table test fee userid number,feeid number,fee number 2 插入測試資料 insert into test fee values 1,1001,80 insert into test fee values 1,1002,...

託福一對一輔導一小時多少錢,託福託福一對一輔導每小時多少錢

思潤教育 託福一對一輔導 往往是按照小時收費的,一般在300 500之間,也有超過這個數的,400的居多,要看你在哪個地方了?託福託福一對一輔導每小時多少錢 思潤教育 託福一對一輔導 往往是按照小時收費的,一般早300 500之間,也有超過這個數的,400較多吧,要看你在哪個地方了? sh環球教育 ...