在表SQL中创建和打印Count

时间:2018-02-15 06:28:55

标签: mysql sql postgresql

我正在尝试使用以下查询将计数打印为额外列:

Sub PrintVisibleSheets()

    Dim arr, s, lst, sep

    arr = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", _
          "Sheet6", "Sheet7", "Sheet8", "Sheet9", "Sheet10", "Sheet11")

    For Each s In arr
        If ThisWorkbook.Sheets(s).Visible Then
            lst = lst & sep & s
            sep = "|" 'add separator after first pass
        End If
    Next s

    'any visible sheets?
    If Len(lst) > 0 Then ThisWorkbook.Sheets(Split(lst, "|")).PrintOut

End Sub

现在,我将它设置为查询从CurrentLoan表中获取memberID的位置,从Member表中获取相应的名字和姓氏并列出它们,但我需要获取每个成员的计数(如在该会员已采取多少本书) 有什么提示吗?

1 个答案:

答案 0 :(得分:1)

您当前的查询似乎在正确的轨道上,但如果您想要计算每个成员的书籍,那么您必须选择它:

SELECT
    m.memberID,
    m.lastname,
    m.firstname,
    COUNT(c.memberID) AS book_cnt
FROM Member m
LEFT JOIN CurrentLoan c
    ON m.memberID = c.memberID
GROUP BY
    m.memberID;

计数表达式COUNT(c.memberID)很重要,因为它正在计算加入表CurrentLoan中的记录。在边缘情况下,成员没有取出书籍,此计数表达式将报告为零。另请注意,我们离开此处是为了确保我们不会放弃任何碰巧没有书籍的会员。