查询在子查询中添加几个字段

时间:2016-04-19 03:06:52

标签: sql sql-server-2012

select 
    T0.DocDate as [GRPO Posting Date],
    T0.DocNum as [GRPO Num]
    ,T0.CardName 
from OPDN T0 
where 
    year(T0.DocDate) ='2016'
    and (dateadd(day, 1, T0.DocDate) in (
        select odln.DocDueDate 
        from odln 
        where year(DocDueDate) = '2016'
    )

这是我的查询工作正常。但我需要获取其他信息。我不知道如何将其添加到现有查询中。

例如除了grpo发布日期,GRPO Num,CardName,我需要获取我在子查询中使用的odln.docnum,odln.docduedate。

请帮我修改此查询或任何有此要求的新查询。

1 个答案:

答案 0 :(得分:1)

您想要的是{ "query": { "match" : { "attribute" : "postfix" } } } INNER JOIN

odln

注意:

  • 避免在SELECT T0.DocDate AS [GRPO Posting Date], T0.DocNum AS [GRPO Num], T0.CardName, T1.DocNum, T1.DocDueDate FROM OPDN T0 INNER JOIN odln t1 ON DATEADD(DAY, 1, T0.DocDate) = T1.DocDueDate WHERE T0.DocDate >= '20160101' AND T0.DocDate < '20170101' AND T1.DocDueDate >= '20160101' AND T1.DocDueDate < '20170101' 子句中的列上使用函数,因为它使您的查询不具有SARGable。在您的情况下,您可以写

    WHERE

    作为

    YEAR(T0.DocDate) = '2016'`