Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试加入不正确的SQL 2008_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

尝试加入不正确的SQL 2008

尝试加入不正确的SQL 2008,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,想要联接这两个表,我在下面展示了我对每个表使用的查询以及我的联接尝试。如有任何帮助,将不胜感激 SELECT [Date] = CONVERT(char(10), CURRENT_TIMESTAMP -3, 103), Items = SUM(NumberOfItems), 'DUAL' as Sorter FROM [DB2].[DB2].[dbo].[SortStatistics] WHERE RecordedPeriod Between

想要联接这两个表,我在下面展示了我对每个表使用的查询以及我的联接尝试。如有任何帮助,将不胜感激

SELECT [Date] = CONVERT(char(10), 
       CURRENT_TIMESTAMP -3, 103),
       Items = SUM(NumberOfItems), 
       'DUAL' as Sorter 
FROM  [DB2].[DB2].[dbo].[SortStatistics] 
WHERE RecordedPeriod  Between '06/23/17 01:00:00AM' and '06/23/17 23:59:00PM' 
AND   WorkstationID IN ('D11', 'D12', 'D13')

SELECT [Date] = CONVERT(char(10), 
       CURRENT_TIMESTAMP -3, 103), 
       Misfires = SUM(Resolved), 
       'DUAL' as Sorter
FROM  [DB1].[DB1].[dbo].[MisfireLog]
WHERE RecordedPeriod  Between '06/23/17 01:00:00AM' and '06/23/17 23:59:00PM' 
and   WorkstationID  IN ('D11', 'D12', 'D13')
结果是

Date        Items   Sorter
23/06/2017  39983   DUAL


Date        Misfires    Sorter
23/06/2017  247         DUAL
这是我加入的尝试

SELECT [Date] = CONVERT(char(10), 
       CURRENT_TIMESTAMP -3, 103),Items = SUM(SortStatistics.NumberOfItems), 
       Misfires = SUM(MisfireLog.Resolved),
       'DUAL' as Sorter 
FROM [DB2].[DB2].[dbo].[SortStatistics] 
  LEFT JOIN [DB1].[DB1].[dbo].[MisfireLog]
    ON SortStatistics.RecordedPeriod = MisfireLog.RecordedPeriod
WHERE SortStatistics.RecordedPeriod  Between '06/23/17 01:00:00AM' and '06/23/17 23:59:00PM' 
AND   SortStatistics.WorkstationID IN ('D11', 'D12', 'D13') 
and   MisfireLog.WorkstationID IN ('D11', 'D12', 'D13')
连接尝试的结果如下所示,这是关闭的

Date         Items  Misfires    Sorter
23/06/2017   691822 735         DUAL

当您加入表格时,打开

SortStatistics.RecordedPeriod = MisfireLog.RecordedPeriod
结果将不包含与基表相同数量的记录

结果

23/06/2017 39983 247 DUAL
您只需要将已有的两个查询的输出连接起来。因为这两种方法都是单行输出,所以我们可以像这样使用
交叉连接

SELECT t1.[Date],t1.Items,t2.Misfires,t1.Sorter
FROM
(
SELECT [Date] = CONVERT(char(10), 
       CURRENT_TIMESTAMP -3, 103),
       Items = SUM(NumberOfItems), 
       'DUAL' as Sorter 
FROM  [DB2].[DB2].[dbo].[SortStatistics] 
WHERE RecordedPeriod  Between '06/23/17 01:00:00AM' and '06/23/17 23:59:00PM' 
AND   WorkstationID IN ('D11', 'D12', 'D13')
)t1
CROSS JOIN
(
SELECT [Date] = CONVERT(char(10), 
       CURRENT_TIMESTAMP -3, 103), 
       Misfires = SUM(Resolved), 
       'DUAL' as Sorter
FROM  [DB1].[DB1].[dbo].[MisfireLog]
WHERE RecordedPeriod  Between '06/23/17 01:00:00AM' and '06/23/17 23:59:00PM' 
and   WorkstationID  IN ('D11', 'D12', 'D13')
)t2;

您是否希望输出为2017年6月23日39983 247 DUAL?然后,在使用
SELECT*FROM(query1)t1交叉连接(query2)t2进行
count
之后,需要对表进行交叉连接
@ughai您介意展示脚本吗,到目前为止我还没有使用交叉连接,我感谢您的帮助完美!!!干杯@ughai…..如果我想展示
Percent=SUM(NumberOfItems)-SUM(已解析)/SUM(NumberOfItems)
我是否必须在t1和t2查询部分输入?