Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
C# SQL表的和与差_C#_Sql - Fatal编程技术网

C# SQL表的和与差

C# SQL表的和与差,c#,sql,C#,Sql,我有三张桌子 BNT ref Size a 104545 25 c 304654 50 a 104545 70 c 704564 75 tblTaillePointage BNT ref Size a 104545 20 c 304654 0 a 104545 70

我有三张桌子

BNT       ref       Size
a         104545      25
c         304654      50
a         104545      70
c         704564      75
tblTaillePointage

BNT       ref       Size
a         104545      20
c         304654      0
a         104545      70
c         704564      75
tblDefectue

BNT       ref       Size
a         104545      1
c         304654      50
c         704564      0
我想要这个:

BNT       ref       Size
a         104545      4
c         304654      0
c         704564      0
也就是说,当BNT和ref等于tblTaillePointage时,tblDefectue,tblTaille将其显示为一行,得到4,(25+70-(20+70+1)

我尝试了此查询,但未产生所需的结果:

SELECT ID_OF, Col, BNT, SUM(size1), SUM(size2), SUM(size3), SUM(size4), SUM(size5), SUM(size6), SUM(size7), SUM(size8), SUM(size9), SUM(size10), SUM(Total)
FROM tblTailleALL
GROUP BY ID_OF, Col, BNT 

您可以在三个表上运行
UNION ALL
,从最后两个表中选择带有负号的
size
。然后,您可以按
ref
btn
分组,并将大小放入
SUM()
,如下所示:

SELECT btn, ref, SUM(size) FROM (
    SELECT btn, ref, size FROM tblTaille
UNION ALL
    SELECT btn, ref, -size FROM tblTaillePointage
UNION ALL
    SELECT btn, ref, -size FROM tblDefectue
) all_data
GROUP BY btn, ref
这是一个。

像这样的东西吗

  SELECT t.BNT, t.ref, SUM(t.size) - SUM(tp.size) - SUM (d.size) as Size
    FROM tblTaille t
    JOIN tblTaillePointage tp 
      ON t.BNT = tp.BNT 
     AND t.ref = tp.ref 
    JOIN tblDefectuetp d 
      ON t.BNT = d.BNT 
     AND t.ref = d.ref
GROUP BY t.BNT, t.ref

选择ID_OF、Col、BNT、SUM(size1)、SUM(size2)、SUM(size3)、SUM(size4)、SUM(size5)、SUM(size6)、SUM(size7)、SUM(size8)、SUM(size9)、SUM(size10)、SUM(总计)来自tblTailleALL GROUP BY ID_OF,Col,bnt这里有一些专栏我没有放,因为它太长了。@user2967732否决票最可能的原因是你没有在你的问题主体中显示你尝试了什么,尽管你确实尝试了一些东西,正如你的评论所示。最好在问题中显示你的尝试,因为与从头开始编写代码相比,纠正错误通常更容易,也更有教育意义。