当前位置:  开发笔记 > 数据库 > 正文

通过WHERE生成包含来自一列的多个值的结果

如何解决《通过WHERE生成包含来自一列的多个值的结果》经验,为你挑选了1个好方法。

我对SQL缺乏经验,所以我的措辞可能完全错误.如果有人可以重新解释我的问题,我认为谷歌很容易.使用Ms-SQL Server 2008.

我有一个表,我用以下列记录导入:

importId
date
filename

在我的其他表中,我每天导入三个不同的表.这些可以通过文件名识别(例如contracts_20170105.csv,accounts_20170105.csv,...),我每天只有一种文件.

我想要的结果如下:

date importId_contracts importId_accounts 

我可以通过使用单独识别每个

SELECT
    importId
FROM
    imports
WHERE
    CONVERT(DATE, date) = '2017-01-05' AND
    SUBSTRING(import.filename, 1, 5) = 'Accou'

但我不知道如何将结果合并到上述形式中.

如何在SQL"俚语"中调用它?

谢谢!



1> Giorgi Nakeu..:

如果每天每种类型只有1个文件,这将有效:

select date, 
       max(case when filename like 'contracts%' then importId end) as importId_contracts
       max(case when filename like 'accounts%' then importId end) as importId_accounts 
from Imports
where date = '2017-01-05'
group by date

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有