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

关于sqlserver2000查询

尚未結案
chenliyan163
一般會員


發表:30
回覆:30
積分:12
註冊:2003-09-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-20 09:20:44 IP:221.12.xxx.xxx 未訂閱
table1 table2 bianm jine bianm jine2 1001 100 1001 1 1002 200 1002 2 1003 300 1003 3 1004 400 像以上这样两张表我想用句SQL实现 sum(table1.jine-table2.jine2) 请问如何用一句SQL实现? 我用了这样一句SQL但table1表中的编码为1004的jine就没sum进去 select sum(jine1-jine2) from table1,table2 where table1.bianm=table2.bianm
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-20 09:38:10 IP:202.62.xxx.xxx 未訂閱
您好﹗    應不需要加where table1.bianm=table2.bianm吧 select sum(jine1-jine2) from table1,table2 或者 select sum(jine1)-sum(jine2) from table1,table2 ========================= 我是您的朋友﹐有您真好﹗ ========================= 發表人 - cashxin2002 於 2004/11/20 09:39:17
------
忻晟
chenliyan163
一般會員


發表:30
回覆:30
積分:12
註冊:2003-09-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-20 12:40:40 IP:221.12.xxx.xxx 未訂閱
table1                table2 bianm    jine         bianm    jine2 1001     100          1001     1  1002     200          1002     2 1003     300          1003     3 1004     400 上面的可以用下面的那个SQL算出:得到996 select sum(jine-isnull(jine2,0)) from t1 left join t2 on t1.bianma=t2.bianma    深化下面的课题: 假如说我在SUM时预选判断youxf 是否为1(如果为0就不SUM) and 在一定的时间段,这样的SQL怎么写 table1                             table2 bianm    jine   youxf  rq          bianm    jine2   youxf  rq2 1001     100      1    2004-01-01  1001     1         0    2004-01-01 1002     200      0    2004-02-01  1002     2         1    2004-02-01 1003     300      1    2004-03-01  1003     3         1    2004-03-01 1004     400      1    2004-04-01 我写了这样一句SQL SELECT SUM(TABLE1.jine - ISNULL(TABLE2.jine2, 0)) AS hejje FROM TABLE1 LEFT OUTER JOIN       TABLE2 ON TABLE1.bianm = TABLE2.bianm WHERE (TABLE1.rq BETWEEN '2003-01-01' AND '2005-01-01') AND (TABLE2.rq2 BETWEEN        '2003-01-01' AND '2005-01-01') AND  (TABLE1.youxf = 1) AND (TABLE2.youxf = 1) 这样红色的那句在于不在都一样,而且他根本不受条件的限制(把youxf=0的都SUM了) 请问这样该如何写这个SQL
Wesly
中階會員


發表:14
回覆:103
積分:53
註冊:2002-05-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-22 22:07:51 IP:220.140.xxx.xxx 未訂閱
不知道你用的SQL為何?因為我在MS SQL模擬, 依你所給予的筆數去測試, 為297, 符合你所要求的, 是否你能更加確認? 或提供更多的資料?
chenliyan163
一般會員


發表:30
回覆:30
積分:12
註冊:2003-09-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-26 08:17:55 IP:221.12.xxx.xxx 未訂閱
非常感谢两位热心的回答: 1.297这个数肯定不是我要的数 table1 table2 bianm jine youxf rq bianm jine2 youxf rq2 1001 100 1 2004-01-01 1001 1 0 2004-01-01 1002 200 0 2004-02-01 1002 2 1 2004-02-01 1003 300 1 2004-03-01 1003 3 1 2004-03-01 1004 400 1 2004-04-01 公式:(100-0) (300-3) (400-0) 注意:1.当table1的youxf为0,那么对应table2的youxf不管为0或者1都不能统计进去(例如:bianm为1002) 2.当table1的youxf为1,而table2的youxf为0时,那么(table1.jine-0) 3.当编号为table1编号为1004在table2中没有,但也要统计进去
系統時間:2024-06-02 0:41:59
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!