子查询Vlookup

时间:2016-11-23 13:06:37

标签: sql excel vlookup with-statement

编辑:11/23/2016 10:32

好的,所以我是SQL的新手并且已经相当擅长基础知识,但需要一些帮助才能将此分析从Excel转移到基于查询。我认为这需要一个WITH语句,我只有我们的数据权限才能查看/选择语句。所以我的查询需要是一个基于会话的视图。

我有两个查询[安装查询]和[服务查询],我导入到Excel。 InstallQuery 1:Excel Sheet 1 服务查询2:Excel表2

两个查询是相同的exept,它们在条件

时有所不同

Install Query

Service table

两个excel表之间的链接是(站点号),认为这是一个等价的数字地址。

我想计算60天内有多少安装工作有服务电话。因此,在excel中,我首先执行安装查询表1并插入新的计算列“Warrant Date”,其中包含现有日期列“Onsite Date”并添加60天。具体如下: 现场日期+ 60天=保修日期。

然后我从服务查询表2上的安装查询表1中查找站点编号,如果找到匹配项,我将服务日期与安装日期进行比较。在名为“保修范围”的新列中使用以下逻辑       如果服务日期< =保修日期             然后“涵盖”             否则“不涵盖”

目前,结果位于安装表格中,其中包含excel中的所有列,并添加了“保修范围”列

由于

1 个答案:

答案 0 :(得分:0)

这正是使用case语句 - 根据相关标准为您提供派生列。 加入相关列中的表格,然后在此示例中选择所需的结果 - (为了清楚起见,我将表格别名化):

  SELECT ST.*
            ,CASE 
                WHEN [Service Date] <= [Warranty Date]
                    THEN 'Covered'
                ELSE 'Not Covered'
                END as 'Warranty coverage'
        FROM [Install table] AS IT
        INNER JOIN [Service table] AS ST
            ON IT.[site number] = ST.[site number]