SQL 語法一句 |
答題得分者是:GrandRURU
|
jacosun
一般會員 發表:42 回覆:64 積分:21 註冊:2003-04-18 發送簡訊給我 |
資料表的格式如下
EName M01 M02 M03 M04 M05 ------------------------------------------------------------- 8888 10 20 12 14 16 9999 1000 2530 1650 1750 1820 ==================================== 我想求得每個月的 9999/8888 的值。 我有過利用迴圈再加上 sp_executesql 來做 但怎麼都試都試不出來,有煩各位大大了 |
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
你的資料結構改一下的話,就很容易取出了
EName M QTY ------------------------------------------------------------- 8888 1 10 8888 2 20 8888 3 12 8888 4 14 8888 5 16 9999 1 1000 9999 2 2530 9999 3 1650 9999 4 1750 9999 5 1820 ==================================== 然後就 Select QTY from tablename where EName=8888 and M=月份 Select QTY from tablename where EName=9999 and M=月份 如果不能改資料結構,不是也用迴圈去組SQL就能得到了 [code cpp] for i:= 1 to 5 begin SQL:='select M0' inttostr(i) ' as QTY from tablename where EName=8888'; SQL:='select M0' inttostr(i) ' as QTY from tablename where EName=9999 '; end; [/code] ===================引 用 jacosun 文 章=================== 資料表的格式如下 EName M01 M02 M03 M04 M05 ------------------------------------------------------------- 8888 10 20 12 14 16 9999 1000 2530 1650 1750 1820 ==================================== 我想求得每個月的 9999/8888 的值。 我有過利用迴圈再加上 sp_executesql 來做 但怎麼都試都試不出來,有煩各位大大了 |
jacosun
一般會員 發表:42 回覆:64 積分:21 註冊:2003-04-18 發送簡訊給我 |
第一:結構改不了了 ^^"
第二 我是要查詢 9999 除以 8888 (也就是每個月的平均值) 若是要把查詢出來的值指個變數,然後再利用變數相除呢?? ===================引 用 carstyc 文 章=================== 你的資料結構改一下的話,就很容易取出了 EName M QTY ------------------------------------------------------------- 8888 1 10 8888 2 20 8888 3 12 8888 4 14 8888 5 16 9999 1 1000 9999 2 2530 9999 3 1650 9999 4 1750 9999 5 1820 ==================================== 然後就 Select QTY from tablename where EName=8888 and M=月份 Select QTY from tablename where EName=9999 and M=月份 如果不能改資料結構,不是也用迴圈去組SQL就能得到了 [code cpp] for i:= 1 to 5 begin SQL:='select M0' inttostr(i) ' as QTY from tablename where EName=8888'; SQL:='select M0' inttostr(i) ' as QTY from tablename where EName=9999 '; end; [/code] ===================引 用 jacosun 文 章=================== 資料表的格式如下 EName M01 M02 M03 M04 M05 ------------------------------------------------------------- 8888 10 20 12 14 16 9999 1000 2530 1650 1750 1820 ==================================== 我想求得每個月的 9999/8888 的值。 我有過利用迴圈再加上 sp_executesql 來做 但怎麼都試都試不出來,有煩各位大大了 |
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
哦... 9999/8888 ,看來是我誤會了,我以為是 9999 及 8888 。
這樣的資料結構及需求,想要直接用一段SQL弄出來,可能機率不高,還是乖乖的把它丟在變數去相除吧。 ===================引 用 jacosun 文 章=================== 第一:結構改不了了 ^^" 第二 我是要查詢 9999 除以 8888 (也就是每個月的平均值) 若是要把查詢出來的值指個變數,然後再利用變數相除呢?? ===================引 用 carstyc 文 章=================== 你的資料結構改一下的話,就很容易取出了 EName M QTY ------------------------------------------------------------- 8888 1 10 8888 2 20 8888 3 12 8888 4 14 8888 5 16 9999 1 1000 9999 2 2530 9999 3 1650 9999 4 1750 9999 5 1820 ==================================== 然後就 Select QTY from tablename where EName=8888 and M=月份 Select QTY from tablename where EName=9999 and M=月份 如果不能改資料結構,不是也用迴圈去組SQL就能得到了 [code cpp] for i:= 1 to 5 begin SQL:='select M0' inttostr(i) ' as QTY from tablename where EName=8888'; SQL:='select M0' inttostr(i) ' as QTY from tablename where EName=9999 '; end; [/code] ===================引 用 jacosun 文 章=================== 資料表的格式如下 EName M01 M02 M03 M04 M05 ------------------------------------------------------------- 8888 10 20 12 14 16 9999 1000 2530 1650 1750 1820 ==================================== 我想求得每個月的 9999/8888 的值。 我有過利用迴圈再加上 sp_executesql 來做 但怎麼都試都試不出來,有煩各位大大了 |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
就把它們當作兩個表格在處理就可以了
我是用ACCESS來作處理,因為沒有你的Create table內容,所以請原諒我的偷懶吧 [code sql] SELECT A1/B1 AS Expr1, A2/B2 AS Expr2, A3/B3 AS Expr3 FROM (SELECT m1 AS A1,m2 AS A2,m3 AS A3 FROM 資料表1 where mid = 9999) AS a, (SELECT m1 AS B1,m2 AS B2,m3 AS B3 FROM 資料表1 where mid = 8888) AS b; [/code] ===================引 用 jacosun 文 章=================== 資料表的格式如下 EName M01 M02 M03 M04 M05 ------------------------------------------------------------- 8888 10 20 12 14 16 9999 1000 2530 1650 1750 1820 ==================================== 我想求得每個月的 9999/8888 的值。 我有過利用迴圈再加上 sp_executesql 來做 但怎麼都試都試不出來,有煩各位大大了 |
jacosun
一般會員 發表:42 回覆:64 積分:21 註冊:2003-04-18 發送簡訊給我 |
哈哈哈 我回家的路上也是有想到用這個語法解決。
若是 sp_executesql 來做查詢後把值丟給變數該怎麼做呢?? ===================引 用 GrandRURU 文 章=================== 就把它們當作兩個表格在處理就可以了 我是用ACCESS來作處理,因為沒有你的Create table內容,所以請原諒我的偷懶吧 [code sql] SELECT A1/B1 AS Expr1, A2/B2 AS Expr2, A3/B3 AS Expr3 FROM (SELECT m1 AS A1,m2 AS A2,m3 AS A3 FROM 資料表1 where mid = 9999) AS a, (SELECT m1 AS B1,m2 AS B2,m3 AS B3 FROM 資料表1 where mid = 8888) AS b; [/code] ===================引 用 jacosun 文 章=================== 資料表的格式如下 EName M01 M02 M03 M04 M05 ------------------------------------------------------------- 8888 10 20 12 14 16 9999 1000 2530 1650 1750 1820 ==================================== 我想求得每個月的 9999/8888 的值。 我有過利用迴圈再加上 sp_executesql 來做 但怎麼都試都試不出來,有煩各位大大了 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |