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環球教育 ...