软件:SQL Server Management Studio 2008
我在2个表中获得了一个数据池。我想根据某些要求对数据进行整理并将其粘贴到第三个表中。
这是表1(master.dbo.FloatTable)
Date and Time Militm TagIndex Val Status Marker
8-6-15 10:30 AM 671 0 78 B
8-6-15 10:30 AM 671 1 76 B
8-6-15 10:30 AM 671 2 76 B
8-6-15 10:30 AM 671 3 72 B
8-6-15 10:30 AM 671 4 70 B
8-6-15 10:30 AM 671 5 72 B
表2(master.dbo.TagTable)
TagName TagIndex TagType TagDataType
Capacity_9251_Ashift_History 0 2 0
Capacity_9251_Bshift_History 1 2 0
Capacity_9251_Cshift_History 2 2 0
Capacity_9252_Ashift_History 3 2 0
Capacity_9252_Bshift_History 4 2 0
我将它们合并为 表3(CuringHistoryData.dbo.CuringData)
在列标题下 TagIndex,Date,PressNumber,Shift,Capacity,Production
代码:
DELETE
CuringHistoryData.dbo.CuringData
INSERT
INTO CuringHistoryData.dbo.CuringData (Date, TagIndex)
SELECT CONVERT(varchar(20),DateAndTime,103), TagIndex
FROM master.dbo.FloatTable
WHERE Status != 'U' AND TagIndex BETWEEN 0 AND 320
ORDER BY TagIndex
UPDATE CuringHistoryData.dbo.CuringData
SET CuringHistoryData.dbo.CuringData.PressNumber =SUBSTRING(TagName,10,len(master.dbo.TagTable.TagName)-24),
CuringHistoryData.dbo.CuringData.Shift =RIGHT(SUBSTRING(TagName,10,len(master.dbo.TagTable.TagName)-22),1)
FROM CuringHistoryData.dbo.CuringData
INNER JOIN master.dbo.TagTable
ON CuringHistoryData.dbo.CuringData.TagIndex = master.dbo.TagTable.TagIndex AND master.dbo.TagTable.TagIndex BETWEEN 0 AND 320
UPDATE CuringHistoryData.dbo.CuringData
SET CuringHistoryData.dbo.CuringData.Capacity = master.dbo.FloatTable.Val
FROM CuringHistoryData.dbo.CuringData
INNER JOIN master.dbo.FloatTable
ON CuringHistoryData.dbo.CuringData.TagIndex = master.dbo.FloatTable.TagIndex AND master.dbo.FloatTable.TagIndex BETWEEN 0 AND 320
WHERE master.dbo.FloatTable.Status != 'U'
这加入了前321行,我得到了完美的结果 这是我得到的结果
TagIndex Date PressNumber Shift Capacity Production
0 06-08-15 9251 A 78 NULL
1 06-08-15 9251 B 76 NULL
2 06-08-15 9251 C 80 NULL
3 06-08-15 9252 A 90 NULL
然后直到tagindex 320
现在我还需要合并从tagindex 321到640的生产数据 我正在考虑将CuringData表中的印刷机编号与TagTable进行比较,并获得相应的索引编号。然后获取该索引号并从FloatTable中获取相应的值并将其粘贴到相应IndexNumber上的CuringData
由于我对SQL语言知之甚少,所以我无法理解这一点(我确信你在阅读我编写的代码时能感觉到这一点)
需要帮助整理出来。
答案 0 :(得分:0)
[1]首先你制作表" x"根据您的要求。
[2]使用左外连接并根据您的数据需求进行选择查询
选择*
来自FloatTable a
左外连接TagTable b在a.TagIndex = b.TagIndex
上
左外连接生产c ...................
[3]用户以下命令:
插入x
选择 *
来自FloatTable a
左外连接TagTable b在a.TagIndex = b.TagIndex
上
左外连接生产c ...................
插入x表。
请给我正确的桌子设计,这样我就可以给你完美的询问。