台灣最大程式設計社群網站
線上人數
2097
 
會員總數:246319
討論主題:189850
歡迎您免費加入會員
討論區列表 >> MS SQL >> [SQL]SQL敘述的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[SQL]SQL敘述的問題
價值 : 0 QP  點閱數:1604 回應數:6
樓主

小毓
初學者
466 138
240 91
發送站內信

我有兩個資料表
人工報表               電腦報表

日期   數值           日期   數值
----   -------       ------  --------
 1      33.51           1     33.2
 2       40.1           1     33.9
 3      44.3            1     34.0
 4      20.1            2     99.6
 5       10.00          2     100.0
...

1.我要把它合併成一個資料表
2.以人工報表為主..在電腦報表取日期一樣但數值最接近的那筆資料.....
納這SQL敘述如何下
             

本篇文章發表於2002-08-08 09:46
1樓
回應

小毓
檢舉此回應
有人會ㄇ
本篇文章回覆於2002-08-08 10:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

阿修羅
檢舉此回應
前面有類似的文章
當時我說明過,可能可以解決的方法
由於接近,可以是大於,可以是小於或等於
所以你要用2個SQL
sql1=select top 1 電.數 from 電,人 where 電.日=人.日 and 電.數>人.數 order by 電.數 降
sql1=select top 1 電.數 from 電,人 where 電.日=人.日 and 電.數<=人.數 order by 電.數 升
再用取出來的值相減 [人.數]
誤差值為0或最小的,就是你要的那一筆
本篇文章回覆於2002-08-08 10:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

阿利
檢舉此回應
Plz Chk This Out...:)
http://www.cu29.sytes.net/討論區/board/board_content.asp?&board_id=3&title_id=1014&CONTENT_NOWPAGE=1
本篇文章回覆於2002-08-08 10:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

sdargon
檢舉此回應
select min(iif(電.數 < 0,電.數 * -1,電.數) + 人.數) as minvalue,電.數,人.數 from 電,人 where 電.日 = 人.日 group by 電.日

要不要試試寫成這樣子...
沒試過~
有錯的可能很大.....
本篇文章回覆於2002-08-08 16:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

sdargon
檢舉此回應
呃...
更正一下...
不過還是覺得怪怪的=____=
select min(iif((電.數 -  人.數) < 0,(電.數 -  人.數) * -1,(電.數 -  人.數) ) ) as minvalue,電.數,人.數 from 電,人 where 電.日 = 人.日 group by 電.日
本篇文章回覆於2002-08-08 17:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

adodo
捐贈 VP 給 adodo 檢舉此回應
我有 try 過哦, 你試試吧....

select 日期 , 數值 , 
      (
          select Top 1 電腦報表.數值 from 電腦報表
          where 電腦報表.日期 = 人工報表日期
          order by  ABS(電腦報表.數值 - 人工報表.數值)
      ) as 電腦報表近似值
form 人工報表

這是 SQL server 的....
不知 DB2 或 Oracle 通不通, 試試吧
嗶~~~
本篇文章回覆於2002-08-08 21:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.