我真的在努力处理下面的SQL。我尝试了很多不同的东西,而且我无法让他们工作。带有左连接,Where子句和Sum()的SQL语句?
我基本上需要做的是LEFT OUTER JOIN这个工作的SQL语句:
SELECT "TABLE1"."Sheet Number",
"TABLE1"."ID Number",
"TABLE1"."Identification",
"TABLE1"."Job Date",
"TABLE1"."p2c",
"TABLE2"."Range",
"TABLE1"."bcr",
"TABLE1"."Dataset ID",
"TABLE1"."ACC",
"TABLE1"."GNC",
"TABLE1"."Year",
"TABLE1"."Period",
"TABLE1"."Week",
"TABLE1"."Job_ID"
FROM "DATABASE"."dbo"."TABLE2" "TABLE2" LEFT OUTER JOIN "DATABASE"."dbo"."TABLE1" "TABLE1"
ON (((("TABLE2"."Contract"="TABLE1"."GNC")
AND ("TABLE2"."FromPeriod"="TABLE1"."Period"))
AND ("TABLE2"."FromWeek"="TABLE1"."Week"))
AND ("TABLE2"."FromYear"="TABLE1"."Year"))
WHERE "TABLE1"."ACC"='ACCOUNT57'
AND "TABLE1"."Dataset ID"=5
AND "TABLE1"."bcr"=1
AND "TABLE2"."Range"='Week'
ORDER BY "TABLE1"."Sheet Number"
这一个:
SELECT "SALES"."JobId",
"SALES"."Total",
SUM("SALES"."Total") AS JOBTOTAL
FROM "DATABASE"."dbo"."SALES" "SALES"
GROUP BY "SALES"."JobId"
ON "SALES"."JobId"="TABLE1"."Job_ID"
但是其他的联接是造成我困惑的一个很大的/尝试实施我在网上找到的解决方案时感到沮丧。我读过它可能是WHERE和GROUP BY语句不是很好玩?
但我似乎无法得到任何解决方案,我发现在线工作。我试过的一个解决方案看起来像是用括号内的SUM()和GROUP BY(我的底部语句)包装了SQL语句并加入了它?
有人能帮忙吗?
谢谢你的时间。
最简单的是在实际包装SUM选择在派生表,然后离开加入到它。并检查第一个查询的结果是否符合您的期望,这是一个Inner连接而不是Left。 – dnoeth
您没有使用表2中的任何列,您是否试图通过表2限制表1的结果? – Matt
是表2仅用于限制表1的结果 - 它应该有一个内部连接tbh,但我正忙着试图使这个工作,并开始改变任何事情和一切。也是它是一个派生表,我试图实现,但我只是无法得到它的工作... – Dark