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

時間 2021-10-14 21:22:52

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的列,型別為數字

sql兩表一對多查詢問題

深刻如此 這應該是乙個1對多的對映關係 1個員工可以對應多條業績記錄 那麼可以設員工表的主鍵是員工id,並且作為業績表的外來鍵。比如業績表叫做achievement table員工id對應的列為employee id 比如員工表叫做employee table 主鍵id為員工id,以及表中有列emp...

SQL一對多表關聯查詢,sql多對多關係的兩表如何聯合查詢出所有的結果?

補充 這個,感覺樓主的語句不用寫成這樣詭異的,你可以試試下面的語句符不符合你的要求 select from table1 a,table 2 b where a.name b.name 這樣不就行了麼?可以給多一點資訊麼?具體你想返回什麼呢?是這樣麼?table1符合的記錄欄位 table1所對應的...

spring配置對映關係時一對多多對一和多對多關聯

這應該是在model層配的吧,一般是hibernate,jpa,ibatis等 springmvc hibernate的多對一和一對多,多對多,一對一註解關係 一對一 onetoone 一對多 onttomany 多對多 manytomany 這些註解是jpa的,hibernate會支援,和spri...