【发布时间】:2015-04-15 09:29:29
【问题描述】:
我有两个需要加入的 sql 查询(来自 1 个表),但是当我尝试加入它们时总是出错。
第一个表:这是完整的表。
Select Server, Network, ReservationIP, ReservationMAC, ReservationName
from ScopeReservations
结果(被截断了。这是一个非常表格)
> Server Network ReservationIP ReservationMAC ReservationName
> Server1 10.3.64.32 10.3.64.36 000d5d08e83c pr-bnea06-a01-a
> Server2 10.3.64.32 10.3.64.37 000d5d08278c pr-bnea06-a02-a
第二张表:所有在 ReservationMAC 中有重复值的表
Select ReservationMAC, COUNT(*) from DHCP_ScopeReservations
group by ReservationMAC
having count(*) > 1
order by ReservationMAC
结果:
ReservationMAC (No column name)
0000850a3477 2
0000854b8328 2
85731867 2
我需要的结果是这样的。
Server Network ReservationIP ReservationMAC ReservationName
Server1 10.233.192.0 10.233.192.5 0000850a3477 pq2217a.
Server2 10.233.196.0 10.233.197.129 0000850a3477 pq2217.
Server1 10.80.16.0 10.80.17.13 0000854b8328 PQ090.
Server2 10.80.70.32 10.80.70.47 0000854b8328 Canon4B8328.
另外,结果不应包含具有相同reservationIP 和reservationMAC 的那些。 未包含在结果中:
Server Network ReservationIP ReservationMAC ReservationName
Server1 10.34.57.0 10.34.57.10 011 vh101r
Server2 10.34.57.1 10.34.57.10 011 vh102r
Server1 10.206.0.0 10.206.3.22 0000681569af ac-gpo069
Server2 10.206.0.0 10.206.3.22 0000681569af ac-gpo069
结果应该是所有在 ReservationMac 列中有重复条目的结果。结果必须包含表的所有列。
我想做什么:
Select a.Server, a.Network, a.ReservationIP, a.ReservationMAC,
a.ReservationName
from DHCP_ScopeReservations a
INNER JOIN
(
Select ReservationMAC, COUNT(*)
from DHCP_ScopeReservations
group by ReservationMAC
having count(*) > 1
) dt ON a.ReservationMAC=dt.ReservationMAC
错误是
消息 8155,第 16 级,状态 2,第 6 行 没有为“dt”的第 2 列指定列名。
【问题讨论】:
标签: sql-server join