線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2450
推到 Plurk!
推到 Facebook!

SQL 語法一句

答題得分者是:GrandRURU
jacosun
一般會員


發表:42
回覆:64
積分:21
註冊:2003-04-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-08-03 16:08:25 IP:59.120.xxx.xxx 訂閱
資料表的格式如下
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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-08-03 17:01:37 IP:203.79.xxx.xxx 訂閱
你的資料結構改一下的話,就很容易取出了


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-08-03 17:19:24 IP:59.120.xxx.xxx 訂閱
 第一:結構改不了了 ^^"
第二 我是要查詢 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-08-03 17:25:56 IP:203.79.xxx.xxx 訂閱
哦...  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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-08-03 18:43:42 IP:118.167.xxx.xxx 未訂閱
就把它們當作兩個表格在處理就可以了

我是用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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-08-04 09:36:18 IP:59.120.xxx.xxx 訂閱
哈哈哈  我回家的路上也是有想到用這個語法解決。
若是 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 來做
但怎麼都試都試不出來,有煩各位大大了
系統時間:2024-05-06 15:04:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!