ある解説書で

let dataPoint = (2014, 12, 28)
switch dataPoint {
case (_, 8, let date) :
        println("In summer vacation. remind days: \(30 - date)")
case(_, 12, let date) where 27 < date:
        println("In winter vacation")
case(_, 1, let date) where 5 > date:
        println("In winter vacation")
case(year, month, date):
        println("\(year)-\(month)-\(date)")
}

と書かれていて、上の3つのcaseではlet dateとしているところを最後のcaseではdateとしているのはなぜなのでしょうか?
他の解説書も見て、whereのあるcaseは定数で宣言するのかなと考えたのですが、 この文では最初のcaseでwhereがないのにlet date です。

本に説明がないということは基本的なことなのだとは思うのですが、どなたかご説明いただけないでしょうか…