Sql 联盟在哪里
我想完成这样的事情:Sql 联盟在哪里,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我想完成这样的事情: SELECT QtdEmbarcados.Total FROM QtdEmbarcados, ProgramacaoBarcas WHERE ( (SELECT * FROM ( SELECT ProgramacaoBarcas.ViagemID, ProgramacaoBarcas.Data, ProgramacaoBarcas.TSFechamento FROM ProgramacaoBarcas WHERE CONVERT(DATE, Prog
SELECT QtdEmbarcados.Total FROM QtdEmbarcados, ProgramacaoBarcas
WHERE (
(SELECT * FROM
(
SELECT ProgramacaoBarcas.ViagemID, ProgramacaoBarcas.Data, ProgramacaoBarcas.TSFechamento FROM ProgramacaoBarcas
WHERE CONVERT(DATE, ProgramacaoBarcas.TSFechamento) = CONVERT(DATE, GETDATE())
UNION
SELECT InsercaoManual.ViagemID, InsercaoManual.Data, InsercaoManual.TSFechamento FROM InsercaoManual
WHERE CONVERT(DATE, InsercaoManual.TSFechamento) = CONVERT(DATE, GETDATE())
) Retorno)
QtdEmbarcados.ViagemID = Retorno.ViagemID AND QtdEmbarcados.Data = Retorno.Data)
和示例表:
QtdEmbarcados
维亚吉德数据总计
009--41000--10
029--42000--50
A19---42300--40
程序奥巴马
维亚吉米德数据公司
009-41000-10/05/2013
019---42000-NULL
B49---13000-11/05/2013
一年一度
维亚吉米德数据公司
009---21000-NULL
0D9---42000-NULL
A19---42300-10/05/2013
预期成果:
维亚吉德数据总计
009-21000-10
A19---42300-40
我想从表XQtdEmbarcados.Total中检索一些结果,其中这些结果必须在我从表a和表B viageId和数据PKs中获得的范围内。
所以,我阅读QtdEmbarcados,检查结果是否存在于表A和表B中,然后返回。
但我在转换行sintax near时出错
有什么帮助吗
编辑:刚刚插入了一个示例。从QtdEmbarcados获得的结果是表programmacobarcas中存在第1行,表insercamanal中存在第3行。
我认为在联合计划中,奥巴马和Insercomanal使用了相同的shema,在where子句中使用了这些结果
对不起,如果你说了些废话。我是SQL新手
谢谢 试试这个-
DECLARE @curr_date DATE = GETDATE()
SELECT q.Total
FROM dbo.QtdEmbarcados q
JOIN dbo.ProgramacaoBarcas r ON q.ViagemID = r.ViagemID AND q.Data = r.Data
JOIN (
SELECT p.ViagemID, p.Data, p.TSFechamento
FROM dbo.ProgramacaoBarcas p
WHERE CONVERT(DATE, p.TSFechamento) = @curr_date)
UNION
SELECT i.ViagemID, i.Data, i.TSFechamento
FROM dbo.InsercaoManual i
WHERE CONVERT(DATE, i.TSFechamento) = @curr_date)
) t ON q.ViagemID = t.ViagemID AND q.Data = t.DATA AND ... -- <-- your WHERE clause
你的询问毫无意义。请提供一些示例数据和预期结果以帮助澄清。where子句的计算结果不是布尔值,因此会出现错误。你是说在哪里存在选择*。。。?您还需要在该子查询和关于日期的位之间使用AND或or。或者该部分应该是子查询的where子句?脚本中有太多问题,无法确定您的确切意图。请将TSFechamento字段添加到示例表中,无论它位于何处,并根据示例数据发布查询的预期结果。更新了联合代码,现在我认为它是正确的。TSFechamento是一个日期时间字段。我应该只带来今天的结果。我做了另一个改变。删除了并集,只留下一个SELECT,可以正常工作。但我需要比较两个表中的选择,而不仅仅是一个。还有别的办法吗?我不能用工会使它工作