我有表IPAddressHistory包含三列IPAddressID,DateFrom和DateTo,和另一个表IPAddressTimeValue与特定时间的详细值。所以,我需要选择和值从IPAddressTimeValue通过IPAddressID从IPAddressHistory DateFrom和DateTo之间有关。你可以从sqlfiddle中看到我想要的,例如,我使用的是从IPAddressHistory和UNION ALL的简单静态日期。谢谢。从一个表与和值加入一行从另一个表
初始表:
CREATE TABLE IPAddressHistory(
[IPAddressHistoryID] int IDENTITY(1,1) NOT NULL,
[IPAddressID] int NOT NULL,
[DateFrom] datetime,
[DateTo] datetime,
CONSTRAINT [PK_IPAddressHistory] PRIMARY KEY CLUSTERED
(
[IPAddressHistoryID] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY];
CREATE TABLE IPAddressTimeValue(
[IPAddressTimeValueID] int IDENTITY(1,1) NOT NULL,
[IPAddressID] int NOT NULL,
[Time] datetime,
[CCNI] int,
[TRNI] int,
CONSTRAINT [PK_IPAddressTimeValue] PRIMARY KEY CLUSTERED
(
[IPAddressTimeValueID] ASC
)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY];
初始数据:
提供您想要的输出。 –
我需要从IPAddressHistory中选择加入两列CCNI和TRNI,它们是IPAddressTimeValue中的SUM值,其中DateFrom和DateTo之间的时间间隔是从IPAddressHistory中选择的。每行必须包含IPAddressID,SUM(CCNI),SUM(TRNI),DateFrom和DateTo。您可以在我提供的sqlfiddle页面上的“运行SQL”之后看到结果输出。 – Sanprof
您在小提琴上提供的数据与您插入的值不匹配。查看“20151220到20151221”的日期,查看ipaddressuid,如果您的数据示例显示为70和35,则不是40和20。请让我知道,如果我错了,或者你是! –