Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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 如何连接来自一个表的查询?_Sql - Fatal编程技术网

Sql 如何连接来自一个表的查询?

Sql 如何连接来自一个表的查询?,sql,Sql,第一个问题: select Batch,Shiplist_Qty,COUNT(X.Batch) as ALLOCATED,(Shiplist_Qty - COUNT(X.Batch)) as Variance from dbo.FG_FILLIN as X where X.Status in('KITTED','ALLOCATED') group by X.Batch,X.Shiplist_Qty 输出: Shiplist_Qty ALLOCATED B

第一个问题:

 select 
    Batch,Shiplist_Qty,COUNT(X.Batch) as ALLOCATED,(Shiplist_Qty - COUNT(X.Batch)) as Variance
     from dbo.FG_FILLIN as X
    where X.Status in('KITTED','ALLOCATED') group by X.Batch,X.Shiplist_Qty
输出:

 Shiplist_Qty   ALLOCATED   Batch   Variance
    2              2        CIP2    0
    8              6        CIP4    2
第二个问题:

Select BAtch,
COUNT(X.Batch) as KITTED from dbo.FG_FILLIN as X
where X.Status='KITTED' group by X.Batch
输出:

Batch   KITTED
CIP2    1
现在我需要连接这两个查询,并显示类似这样的结果

 Shiplist_Qty   ALLOCATED   Batch   Variance  Kitted
        2              2        CIP2    0           1
        8              6        CIP4    2           0
谢谢你的问候

试试这个:

select Batch, Shiplist_Qty,COUNT(X.Batch) as ALLOCATED, 
    (Shiplist_Qty - COUNT(X.Batch)) as Variance, ISNULL(Kitted, 0) as Kitted
from dbo.FG_FILLIN as X
LEFT OUTER JOIN
(
    Select Batch,
    COUNT(Y.Batch) as KITTED from dbo.FG_FILLIN as Y
    where Y.Status='KITTED' group by Y.Batch
) Batches
ON X.Batch = Batches.Batch
where X.Status in('KITTED','ALLOCATED') 
group by X.Batch,X.Shiplist_Qty, ISNULL(Kitted, 0)
试试这个:

select Batch, Shiplist_Qty,COUNT(X.Batch) as ALLOCATED, 
    (Shiplist_Qty - COUNT(X.Batch)) as Variance, ISNULL(Kitted, 0) as Kitted
from dbo.FG_FILLIN as X
LEFT OUTER JOIN
(
    Select Batch,
    COUNT(Y.Batch) as KITTED from dbo.FG_FILLIN as Y
    where Y.Status='KITTED' group by Y.Batch
) Batches
ON X.Batch = Batches.Batch
where X.Status in('KITTED','ALLOCATED') 
group by X.Batch,X.Shiplist_Qty, ISNULL(Kitted, 0)
您可以使用:

您可以使用: