我想完成这样的事情:
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
ViagemId 数据总计
009--------41000---10
029--------42000---50
A19--------42300---40
ProgramacaoBarcas
ViagemId 数据 TSFechamento
009--------41000-10/05/2013
019--------42000-空
B49--------13000-11/05/2013
InsercaoManual
ViagemId 数据 TSFechamento
009--------21000-空
0D9--------42000-NULL
A19--------42300-10/05/2013
预期成绩:
ViagemId 数据总计
009--------21000-10
A19--------42300-40
我想从表X(QtdEmbarcados.Total)
中检索一些结果,这些结果必须在我从表 A 和 B(ViagemID
和Data
,PK)获得的范围内。所以,我阅读QtdEmbarcados
,检查结果是否存在于表中Retorno
(A 和 B 联合),然后返回。但是我在转换行“Incorrect sintax near (".
有什么帮助吗?
编辑:刚刚插入了一个例子。想要得到的结果QtdEmbarcados
是第 1 行(存在于表中ProgramacaoBarcas
)和第 3 行(存在于表中InsercaoManual
)。我认为在 union ProgramacaoBarcas
and InsercaoManual
(same shema) 和 where 子句中使用这些结果。
对不起,如果做了一些废话。我是 SQL 新手。
谢谢 !