SQL数据查询-正确显示计数

时间:2019-06-04 01:40:31

标签: php sql sql-server-2014

我有一个SQL数据库,其中包含使用某软件的机器和用户的日志数据。 我需要创建一个查询,以显示某一天(今天)中的所有连接并将其按年份级别分组。

WindowsLogs表:

Date
Time
Username
Year
AppV
IPaddress
MAC
DeviceName
Antivirus
5gigCompat

据我所知:

select WindowsLogs.Year,count(*)
From WindowsLogs
Where WindowsLogs.Date=cast(convert(varchar(10), getdate(), 105) as datetime)
group by WindowsLogs.Year

我目前得到这个:

Year | no name
   7 |  5
   8 |  2
  11 |  3

但是理想情况下,我希望这样显示数据:

Year 07 | XX
Year 08 | XX
Year 09 | XX
Year 10 | XX
Year 11 | XX
Year 12 | XX

3 个答案:

答案 0 :(得分:0)

大概,您似乎想要一个left join,像这样:

select v.str, count(wl.year)
from (values ('Year 07', 7),
             ('Year 08', 8),
             ('Year 09', 9),
             ('Year 10', 10),
             ('Year 11', 11),
             ('Year 12', 12)
     ) v(str, yr) left join
     WindowsLogs wl
     on wl.date = convert(date, getdate()) and
        wl.year = v.yr
group by v.str
order by v.str;

答案 1 :(得分:0)

使用以下内容修复了该问题:

SELECT (SELECT COUNT(*) AS NumberOfTransactions 
FROM WindowsLogs
WHERE WindowsLogs.Date=cast(convert(varchar(10), getdate(), 105) as datetime) 
and WindowsLogs.Year = 7) as Year7today;

并继续每年的水平

答案 2 :(得分:0)

使用$q = Get-Content -Path .\file.txt |Select-String 'Hello' -SimpleMatch $w = Get-Content -Path .\file.txt |Select-String 'new' -SimpleMatch $e = Get-Content -Path .\file.txt |Select-String 'World' -SimpleMatch $r = Get-Content -Path .\file.txt |Select-String 'Hi' -SimpleMatch $t = Get-Content -Path .\file.txt |Select-String 'greet' -SimpleMatch CONCAT

FORMAT