假设我有两个具有相同列结构的表。
Table A
Key Value
a 123.452
b 127.851
c 128.478
Table B
Key Value
a 124.46
b 127.578
d 576
现在我想要显示表A中没有出现在表B中的所有行。但是也有一个条件是忽略值列中+/- 0.01的差异,并将它们视为相等。
所以结果应该是这样的
Key Value
b 127.851
c 128.478
我知道可以使用减号查询,但它不会考虑附加条件。
我正在编写一个查询来更新一个表( TableA ),使用来自另一个表( TableB )的值,表B针对TableA中的每一行返回多个值,并且请求使用TableB中的最大返回值进行更新。
我可以通过以下方式做到这一点:
UPDATE TableA
SET Value = (SELECT TOP 1 B.Value FROM dbo.TableB B
WHERE TableA.Key = B.Key
ORDER BY B.Value desc)
我不确定这是实现需求的最佳方法,而且我还担心上述查询的性能。它是否对表B进行多次扫描以找
我有一个连接到多个表的查询。基于一个表的列值,我想要另一个表的键值。但是,当此键值连接到另一个表时(目的是标识该键的不同日期值),将出现多个日期。当连接到另一个表时,我想返回其日期最近的键值。我有一个可以工作的查询,但它非常冗余,因为子查询几乎与主查询相同。我不知道是否有技术或更好的方法来实现这一点。
查询示例:
SELECT distinct TableA.key
FROM TableA a INNER JOIN TableB b
ON a.key = b.Key
INNER JOIN TableC c ON b.Key2 = c.Key2
INNER JO
我正尝试在左连接条件中使用子查询,但收到一条错误消息:"Error in SQL statement: AnalysisException: Table or view not found: TableD;",并指向我的子查询中的FROM TableD D2语句。
SELECT D1.Code, D1.Description, C.InstanceKey
FROM TableA A
INNER JOIN TableB B
ON A.Key = B.Key
INNER JOIN TableC C
ON B.DetailKey = C.DetailKey
LEFT
我有两张桌子TableA和TableB。TableA有一个列newValue和oldValue。TableB有一个列value。
我希望得到以下结果:从TableA获取所有行,其中newValue存在于TableB中,而oldValue不存在于TableB中。
这两个表都有许多行,因此性能非常重要!
您将如何在SQL Server 2010/2012中完成这一任务?
(我没有找到这个问题的产权)。
编辑:
我尝试的第一件事是:
SELECT newValue, oldValue
FROM TableA
WHERE newValue IN (SELECT value FROM TableB)
日安,
我要用相同的桌子结构。一个是基表,第二个是增量更改。我希望有结果表,以便我从更新中选择行(如果有)。否则从旧桌子上。
就像这样
table a: | Table b: | Result table:
key val | key val | key val
1 a | 2 bb | 1 a
2 b | 4 dd | 2 bb
3 c | 5 ee | 3 c
4 d | | 4 dd
5 ee
我尝试在、内部连接、和完全
为了简单起见,我有两个表,表A和表B(注意,我没有权限更改这些表的结构,所以我问这个问题是为了绕过一个糟糕的数据库设计)。
表A有两列:
"id" - is the unique identifier.
"customer_id" - is the customer's ID.
因此,表A包含一个客户ID列表。
表B保存有关客户的属性。但它是以一种奇怪的方式实现的(同样,这不是我设置的,我也无法改变它)。表B有数字列:
"id" - is the unique identifier.
"cust
嗨,我遇到了一个情况,我需要连接两个表,但从第三个表中筛选值。详情如下:
SELECT a.Key , (SELECT SUM(B.hours) FROM tableB as B
INNER JOIN tableC as C ON B.List=C.List
WHERE C.Status = 'Approved' AND B.Key LIKE A.key) ,
(SELECT SUM(B.hours) FROM tableB as B
IN
好的,我试着比较两列,在两个表中,在不同的数据库中。我要警告您,我对SQL非常陌生。我试图编写一个查询来执行这样的操作:
If a field in tableA column2 contains a field from tableB column1 at least once, increment a counter
我想知道柜台的价值。此外,当我同样的“包含”,我指的是一种substr()的方式(fe )。“市场”包含“市场”一词)。有人能帮我解决这个问题吗,或者至少给我指明正确的方向?