在SQL查询中选择特定日期?

时间:2015-01-20 20:12:05

标签: sql-server tsql

我有3个表与这个查询连接在一起。 其中一个给我带来了人名,另一个带给我他们的积分,最后一个带给我日期时间。

我选择总人数。

另外,第3张表格中有一栏给我带来了分数'交易Date Time。我的问题是我想用这种条件写一个TSQL查询:

选择人员得分为12,000或以上的交易日期。

在我的想法中我应该使用while循环,但我不知道语法?

enter image description here

2 个答案:

答案 0 :(得分:2)

我就是这样做的 -

SELECT cp.FirstName
,  cp.LastName
,  SUM(Points) as Score
FROM ClubProfile cp 
    RIGHT JOIN CardTransaction ct 
        ON cp.ClubProfileId = ct.ClubProfileId
    INNER JOIN Your3rdTable as t3
        ON cp.ClubProfileId = t3.ClubProfileId
WHERE CONVERT(VARCHAR, ct.[Date Column], 101) = @your_date_param
GROUP BY 
        cp.FirstName
     ,  cp.LastName
HAVING SUM(Points) >=12000

答案 1 :(得分:1)

根据您的帖子,这应该接近您的需要。您需要添加第3个表并相应地更改此语句。

SELECT cp.FirstName
    ,  cp.LastName
    ,  SUM(Points) as Score

    FROM [fidilio].[dbo].[ClubProfile] cp 
        RIGHT JOIN ( 
            CardTransaction ct 
                INNER JOIN CardTransactionLog ctl
                    ON cp.CardTransactionLogId = ctl.CardTransactionLogId
            )
            ON cp.ClubProfileId = ct.ClubProfileId
    GROUP BY 
            cp.FirstName
         ,  cp.LastName

    HAVING  SUM(Points) >=12000 
        AND ctl.TransactionTimeStamp = @SomeDateTimeVariable

变量@SomeDateTimeVariable必须来自某个地方您的确切时间范围标准