【问题标题】:SQL Show most current record for each task by dateSQL 按日期显示每个任务的最新记录
【发布时间】:2016-03-04 13:49:28
【问题描述】:

我想显示每个任务的最近更新记录。 目前,无论执行什么任务,我都只能获取所有记录中的最新记录。

这是前端代码

<asp:SqlDataSource ID="GrabAssignedTasks" runat="server" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" 
            SelectCommand="SELECT Backlog.Story, Tasks.Task, Tasks.EstimatedHours, Tasks.UserStoryTaskID, Tasks_Log.TaskLogID, Tasks_Log.HoursLeft, Tasks_Log.ModifiedDate 
             FROM Backlog 
             INNER JOIN Tasks ON Backlog.UserStoryID = Tasks.UserStoryID 
             INNER JOIN Tasks_Log ON Tasks.UserStoryTaskID = Tasks_Log.TaskID 
             WHERE (Tasks.OwnershipID = @UserID) AND (Tasks_Log.ModifiedDate = (SELECT MAX(ModifiedDate) AS Expr1 
            FROM Tasks_Log AS Tasks_Log_1))">
            <SelectParameters>
                <asp:SessionParameter Name="UserID" SessionField="loggedInUser" />
            </SelectParameters>
        </asp:SqlDataSource>



    </div>
       <header class="jumbotron hero-spacer">

         <asp:Button ID="BackToTasks" runat="server" Text="Back" OnClick="BackToTasks_Click" CssClass="btn btn-primary btn-large" />


        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="GrabAssignedTasks" Height="179px" Width="829px" OnSelectedIndexChanged="HoursChange_SelectedIndexChanged">
            <Columns>
                <asp:BoundField DataField="Story" HeaderText="Story" SortExpression="Story" />
                <asp:BoundField DataField="Task" HeaderText="Task" SortExpression="Task" />
                <asp:BoundField DataField="EstimatedHours" HeaderText="Estimated Hours" SortExpression="EstimatedHours" />
                <asp:BoundField DataField="UserStoryTaskID" HeaderText="UserStoryTaskID" SortExpression="UserStoryTaskID" InsertVisible="False" ReadOnly="True" HeaderStyle-CssClass="hidden-field" ItemStyle-CssClass="hidden-field"/>
                <asp:BoundField DataField="TaskLogID" HeaderText="TaskLogID" SortExpression="TaskLogID" InsertVisible="False" ReadOnly="True" HeaderStyle-CssClass="hidden-field" ItemStyle-CssClass="hidden-field"/>
                <asp:BoundField DataField="HoursLeft" HeaderText="Hours Left" SortExpression="HoursLeft" />
                <asp:BoundField DataField="ModifiedDate" HeaderText="Last Updated" SortExpression="ModifiedDate" />
                <asp:CommandField ShowSelectButton="True" />
            </Columns>
        </asp:GridView>
        </header>

我在 C# 代码中对此没有任何特别之处。

这是我正在使用的数据库中的表的图片。 Database table

【问题讨论】:

    标签: html mysql date sqldatasource sqlcommand


    【解决方案1】:

    您没有将 Table Tasks_Log 与 Tasks_Log_1 一起加入,因此只会返回 Tasks_Log 中修改日期与“2015 年 11 月 30 日”匹配的条目,而与任务无关。在 Tasks_Log_1 的 WHERE 子句中添加一个条目,以确保您也匹配正确的 TaskID:

    SELECT Backlog.Story, Tasks.Task, Tasks.EstimatedHours, Tasks.UserStoryTaskID, Tasks_Log.TaskLogID, Tasks_Log.HoursLeft, Tasks_Log.ModifiedDate 
        FROM Backlog 
        INNER JOIN Tasks ON Backlog.UserStoryID = Tasks.UserStoryID 
        INNER JOIN Tasks_Log ON Tasks.UserStoryTaskID = Tasks_Log.TaskID 
        WHERE (Tasks.OwnershipID = @UserID)
        AND (Tasks_Log.ModifiedDate = 
            (SELECT MAX(ModifiedDate) 
             FROM Tasks_Log AS Tasks_Log_1
             WHERE Tasks_Log_1.TaskID = Tasks_Log.TaskID))
    

    【讨论】:

    • Russ 你是个漂亮的男人,工作就像一个魅力 :) 非常感谢你
    猜你喜欢
    • 2020-08-22
    • 2020-08-03
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    相关资源
    最近更新 更多