❶ 求高手給寫一條sql語句,返回兩個表中的兩條數據之差
不知道你什麼資料庫.
如果
Oracle
,
倒是很省事。
創建一個序列號,
2個表共用。
A表插入的時候,取
下一個序列號,
B表插入的時候,取當前序列號。
如果是
SQL
Server
或者
MySQL
這種,用資料庫系統自增的。
就自己控制好,別插入一條A,再插入兩條B這種情況發生。
不過如果發生異常,還是會導致不匹配的。
例如首先插入A,
某些
Check
沒通過,數據沒插入,但是那個自增的ID可能被遞增了。
想返回表A中最大的id和表B中最大的id的差值
倒是很簡單
SELECT
MAX(A.id)
-
MAX(B.id)
AS
差值
FROM
A
FULL
JOIN
B
ON
(A.id
=
B.id)
❷ sql中怎麼計算兩列的差
假設A列B列都是數值型
select (A-B) as 差 from 表
假設A列B列都是字元型或轉換成字元型
select replace(A,B,'') as 差 from 表
❸ 如何用SQL語句從兩個表中提取指定列的差值
首先你的語句沒有語法錯誤,你的意思應該是計算出來的結果與實際不符吧?
因為:
你沒有定義兩表連接的條件,所以兩表連接後的結果可能不是你期待的結果
例如兩表都是以id作為連接條件:
select sum(inmoneys.money)- sum(outmoneys.money) as total
from outmoneys,inmoneys
where outmoneys.id = inmoneys.id
------
如果兩表沒有對應關系,換句話說是沒有連接條件,那麼只能寫成:
select(select sum(money) from inmoneys)-(select sum(money) from outmoneys)as total
❹ 急救!!!用SQL語句怎麼求兩個數據之間的差
直接用<%=rs("summoney")-rsls("summoney")%>不就成了,不是非得用sql吧
❺ 剛學資料庫,求sql兩個表數據之間求差怎麼寫
select a.[名稱],a.[數量]-ISNULL(b.[數量],0)
from table1 a left outer join table2 b
ON a.[名稱]= b.[名稱]
UNION
Select b.[名稱],-b.[數量]
from table2 b
where not exists(Select a.[名稱] from table 1 a where a.[名稱]=b.[名稱])
❻ 在Sql語句中怎樣計算出兩個日期的差值
sql語句中計算兩個日期的差值用datediff函數。
工具:sqlserver 2008 R2
步驟:
1、計算2009-06-23與2009-06-17之間的天數。語句如下:
selectdatediff(d,'2009-06-17','2009-06-23')
2、查詢結果:
❼ sql語句如何查詢兩個值之間的差
工具/材料:Management Studio。
1、首先在桌面上,點擊「Management Studio」圖標。
❽ 求助:sql取兩個查詢語句的差集
sqlserver是except
select*fromtawherecol1=xxx
except
select*fromtawherecol2=yyy;
oracle是minus
select*fromtawherecol1=xxx
minus
select*fromtawherecol2=yyy;
❾ sql語句如何查詢兩個值之間的差
--> 測試數據:[tb]
if object_id('[tb]') is not null
drop table [tb]
go
create table [tb]([ID] int,[日期] datetime,[數量] int)
insert [tb]
select 1,'2009-1-1',10 union all
select 2,'2009-1-2',12 union all
select 3,'2009-1-3',13
go--1 測試
select a.[ID],a.[日期],a.[數量],增加額=isnull(a.[數量]-b.[數量],0) ------建議把null 替換為 0
from [tb] a
left join [tb] b
on a.id=b.id+1 /*
ID 日期 數量 增加額
----------- ----------------------- ----------- -----------
1 2009-01-01 00:00:00.000 10 0
2 2009-01-02 00:00:00.000 12 2
3 2009-01-03 00:00:00.000 13 1(3 行受影響)*/
--2 使用視圖
create view v
as
select a.[ID],a.[日期],a.[數量],增加額=a.[數量]-b.[數量]
from [tb] a
left join [tb] b
on a.id=b.id+1 goselect * from v
/*
ID 日期 數量 增加額
----------- ----------------------- ----------- -----------
1 2009-01-01 00:00:00.000 10 NULL
2 2009-01-02 00:00:00.000 12 2
3 2009-01-03 00:00:00.000 13 1(3 行受影響)*/
❿ 如何用SQL實現兩列值的差
用 DATEDIFF 函數就可以,不過類型必須是datetime類型的,如果不是,你就轉換一下。
DATEDIFF ( datepart , startdate , enddate )