『壹』 一條sql語句中可否有多個select 或where
一條sql語句是可以有多個select或者where的,具體示例如下:
selecta.idformtableaasawherea.idin(selectb.idfromtablebasbwhereb.id='1');
這樣這條sql語句就包含了多個select和where了,需要注意的是在一個select字句裡面不能有多個where存在。
『貳』 如何在access中同時提交多條sql語句
使用ACCESS查詢對象是無法一次運行多個SQL語句的,但是通過ACCESS VBA代碼可以實現一次運行多個SQL語句。下面是具體實現方案;
1)新建一個ACCESS窗體,窗體添加一個命令按鈕;
2)編寫按鈕單擊事件過程
1
2
3
4
5
6
7
Private Sub Command1_Click()
Dim strSql as string
strSQL="Update Policy SET LatestDueDate=Year(Date()) & '-' & Format(PolicyDate,'mm-dd')"
DoCmd.RunSql strSQL '運行第一個更新語句
strSQL="UPDATE Policy SET LatestDueDate= DateAdd('yyyy',1,LatestDueDate) WHERE (((Month(Date())-Month(LatestDueDate)) > 6) and(PaymentMode='H'))"
DoCmd.RunSql strSQL '運行第二個更新語句
End Sub
跟著點擊該命令按鈕就可以一次執行兩條語句了。
*******不過這里必須指出樓主這種通過UPDATE更新來獲取繳費提醒的辦法絕對是一種非常糟糕的解決方案,其壞處除了你說的,我可以指出N多條!具體就不說了。******
其實要獲取你要獲取保單續期提醒日期,無需分兩步只要一句SELECT語句就能搞定,完全沒必要去更新數據表。
將下列SQL語句保存為一個名為「RenewAlertPolicies的選擇查詢
1
2
select PolicyNo,PolicyDate,DateAdd('yyyy',1,PolicyDueDate) as LatestDueDate
from Policy where DateDiff('m',PolicyDate, Date()) > 6 order by PolicyDate desc;
注意:上面「保單號」欄位名是我虛構的,請替換為實際的保單號欄位名。如果不想看太舊的保單,篩選可以用時間段來限制,例如...where DateDiff('m',PolicyDate, Date()) between 7 and 12 ....
當你要查看需要提示續保的保單列表時,簡單地雙擊該查詢就好了,你可以隨要隨查,非常方便,查詢結果將會展示最新的情況,完全沒必要去考慮如何更新LatestDueDate的問題。
『叄』 在winfrom中一個點擊事件中兩個SQL語句怎麼分開執行
如果是單獨的執行兩條sql語句是沒有問題的,但是你要考慮到後面的東西,視圖是不可以更新的,也不可以通過視圖去更新數據,只有通過視圖綁定的查詢表來更新數據。
public static void Do(string name)
{
using (SqlConnection conn = new SqlConnection(_ConnString))
{
try
{
conn.Open();
string sql=string.Format("CREATE View VIew_TABLE1 AS SELECT * FROM TABLE1")
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
cmd.CommandText =string.Format( "UPDATE TABLE1 SET NAME='{0}'",name);
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
這樣只有更新綁定視圖的表視圖就會跟著更新了
『肆』 sql一個表中同時查詢兩個count的sql語句
可以有兩種解決方法,
所需工具:SQL
查詢兩個count的方法1:
SELECTpaperName
,COUNT(1)AS總題數
,sum(CASEWHENstatu=1THEN1ELSE0END)AS審核題數
FROMquestion
GROUPBYpaperNme
查詢兩個count的方法2:
selects.總題數,s.審核題數,s.paperName
from(
selectCOUNT(1)as總題數,casewhenstatus=1thencount(1)else0endas審核題數,paperName
fromquestion
--wherepapernamein(),這個條件可以不要了
groupbypaperNme,stauts--status也要作為分組欄位,因為在case中有使用
)s
備註:兩個都可以使用。