首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写从该表中选择记录的sql查询

如何编写从该表中选择记录的sql查询
EN

Stack Overflow用户
提问于 2011-06-23 12:31:54
回答 1查看 873关注 0票数 0

在我的程序中,我生成了一个表,如:

代码语言:javascript
复制
id Roll Subject     Marks LetterGrade GradePoint

1  1    Physics     40    D           1

2  1    Chemistry   50    C           2

3  1    Mathematics 60    B           3

4  2    Physics     40    D           1

5  2    Chemistry   50    C           2

6  2    Biology     59    C           2

我使用VB6和MS Access作为数据库。现在我想在Datagrid中显示如下内容:

代码语言:javascript
复制
Roll Sub     Marks LetterG Gp Sub        Marks LetterG Gp Sub            Marks LetterG  Gp GPA  GPAExcl

1    Physics 40    D       1  Chemistry  50    C       2  Mathematics    60    B        3  2.00 1.5

2    Physics 40    D       1  Chemistry  50    C       2  Biology        59    C        2  1.5  1.5

行越多,滚动越多

每个卷的id最大的主题是附加主题。如果其Gp大于2,则将其与GPA相加,GPAExcl仅具有前两个主题

因此,对于第一卷,GPA是(1+2+1)/2=2.00 (数学中的Gp大于2和3-2=1)

GPAExcl是(1+2)/2=1.5

对于第二卷,GPA和GPAExcl=1.5都是

如何编写sql查询,这样我就可以获得这样的记录并在datagrid中显示它

编写这样的查询是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2011-06-23 20:22:34

在我看来,您需要使用DataList而不是DataGrid。DataList允许您指定RepeatColumns和RepeatDirection。

在这种情况下,您似乎希望RepeatDirection是垂直的。然后你只要计算出你想要多少列就行了。

我不确定您需要SQL有什么不同。这似乎是一个格式问题--而不是查询问题。

好吧,我想我看错了。真对不起。我现在明白了,您想要的是左侧所有三门课程的角色,然后右侧是该角色的所有课程。

可能有几种方法来处理这个问题。一种方法是使用两个中继器。这将创建表格(您需要在中添加标题行)。如果您的每个角色没有相同数量的课程,您将不得不通过columnspan处理列。

代码语言:javascript
复制
<asp:Repeater ID="repRoles" runat="server">
    <HeaderTemplate>
        <table>            
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td><%# Eval("Role") %></td>
            <asp:Repeater id="repCourses" runat="server">
                <ItemTemplate>
                    <td>
                        <%# Eval("Subject") %>
                    </td>
                    <td>
                        <%# Eval("Marks") %>
                    </td>
                    <td>
                        <%# Eval("LetterGrade") %>
                    </td>
                </ItemTemplate>
            </asp:Repeater>
        </tr>
    </ItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>

您可以在第一个转发器上使用ItemDataBound事件,然后将适当的课程绑定到第二个转发器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6449359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档