VisualStudio2005でのGridView 集計

このQ&Aのポイント
  • VisualStudio2005でGridViewを使用して集計表を作成する方法についての質問です。
  • 質問者は下記のSQL文を使用して集計表を作成しようとしていますが、明細が表示されてしまうという問題が発生しています。
  • どこが間違っているのか、正しい集計表の作成方法を教えてください。
回答を見る
  • ベストアンサー

VisualStudio2005でのGridView 集計

VisualStudio2005でGridViewを使って集計表を出そうと思い下記のSQL文を作成しましたが明細で出てしまいます。 どこが間違っているのでしょうか? ---------------------------------------------------------------- </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:meldandyConnectionString %>" SelectCommand="SELECT DISTINCT [kamoku_code], [kamoku_name], [s_code], [s_name], [kingaku] FROM [a_keihi_dt] WHERE ([kamoku_code] > @kamoku_code2) GROUP BY [s_code], [kamoku_code], [kamoku_name], [s_name], [kingaku] ORDER BY [s_code], [kamoku_code]">

質問者が選んだベストアンサー

  • ベストアンサー
  • Kyuun
  • ベストアンサー率77% (14/18)
回答No.1

明細とは何をさすのでしょうか? 取得項目と集計KEYが同じにおもえますが ひょっとして、[kingaku]を集計するのでしょうか?

liberty533
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • ape5
  • ベストアンサー率57% (85/148)
回答No.2

SQL文をみると、集計は[kingaku]にしたいのかなと思うのですが、GROUP BY句に[kingaku]も入ってるのですが、 SELECT [kamoku_code], [kamoku_name], [s_code], [s_name], SUM([kingaku]) FROM [a_keihi_dt] WHERE ([kamoku_code] > @kamoku_code2) GROUP BY [s_code], [kamoku_code], [kamoku_name], [s_name] ORDER BY [s_code], [kamoku_code] でいいのかなと。

liberty533
質問者

お礼

『GROUP BY 』には、集計コードだけでしたね。 助かりました。 ありがとうございました。

関連するQ&A

  • htmlでコンボボックスのパラメータを指定したい

    環境 asp.net htmlでコンボボックスをセットしています。 以下のDefaultValueの値をコントロール名にしたいのですがどのように記述すればよいのでしょうか? <asp:SqlDataSource ID="sqlddl1" runat="server" ConnectionString="<%$ ConnectionStrings:xxxConnectionString %>" SelectCommand="SELECT CD, NAME FROM TABLE WHERE (CD = @CD)"> <SelectParameters> <asp:Parameter DefaultValue="123" Name="CD" Type="String" /> </SelectParameters> </asp:SqlDataSource>

    • ベストアンサー
    • HTML
  • UpdatePanel と GridViewについて教えてください

    現在、ASP.NET(VB)にて開発を行っています。今悩んでいる事は GridView内でUpdatePanelを使用した際にエラーが表示されます。 エラー内容は下記の通りです。 InvalidCastException はユーザーコードによってハンドルされませんでした。 ______________________________________________________________________ 型 'System.Web.UI.UpdatePanel' のオブジェクト型 'System.Web.UI.WebControl.GridViewRow' にキャストできません。 どなたか、エラーの対処方をご存知の方がいらっしゃいましたらご指導宜しくお願いします。なお、ソースは下記の様に記述してみました。 <%@ Page Language="VB" %> <%@ Import Namespace="System.Data.SqlClient" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Protected Sub TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Dim txt As TextBox = DirectCast(sender, TextBox) Dim row As GridViewRow = DirectCast(txt.Parent.Parent, GridViewRow) CD.Text = txt.Text End Sub </script> <html> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="SM" runat="server"> </asp:ScriptManager> <asp:TextBox ID="CD" runat="server" Width="50px"></asp:TextBox> <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="CD" DataSourceID="Source" ShowFooter="True"> <Columns> <asp:TemplateField HeaderText="CD"> <ItemTemplate> <asp:Label ID="lbl" runat="server" Text='<%# Bind("CD") %>'></asp:Label> </ItemTemplate> <FooterTemplate> <asp:UpdatePanel ID="UP" runat="server"> <ContentTemplate> <asp:TextBox ID="NewCD" runat="server" AutoPostBack="True" OnTextChanged="TextChanged" Width="50px"></asp:TextBox> </ContentTemplate> </asp:UpdatePanel> </FooterTemplate> </asp:TemplateField> </Columns> </asp:GridView> <asp:SqlDataSource ID="Source" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionStrings %>" SelectCommand="SELECT * FROM [TABLE]" ProviderName="System.Data.SqlClient"> </asp:SqlDataSource> </form> </body> </html>

  • SqlDataSource SelectCommand の書き方

    はじめまして。 現在aspx側でDBから読み込んだデータをGridViewに表示するプログラムを作っています。 環境 SQL Server 2005 Express Edition Visual Studio 2005 ASP.NET(VB) 初期表示として前の画面で選ばれた種別によってSQLが変わるので .aspxで <% dim s as string = "SELECT * FROM 台帳 " select case session("kind") case "A" s &= "WHERE 種別 LIKE '商品A%' " case "B" s &= "WHERE 種別 LIKE '商品B%'" case else ' 全種別を取得 end select hyo_1.SelectCommand = s & "ORDER BY 種別" %> <asp:SqlDataSource ID="hyo_01" runat="server" ConnectionString="<%$ ConnectionStrings:ConStr %>" /> と記述してみたのですが、結果は、何も表示されませんでした。 (順序を逆にしてみてもダメでした) この場合、<asp:SqlDataSource ~ /> で SelectCommand はクリアされてしまうのでしょうか? <asp:SqlDataSource ~ の中で SelectCommand="SELECT ~ " としたときに変数に入れたWHERE句を途中に埋め込むことがどうやってもできなかったので苦し紛れにやってみたのですが、、、 変数 whr="'商品A%'"として <asp:SqlDataSource ~ の中で SelectCommand="SELECT * FROM 台帳 WHERE 種別 LIKE <% = whr %> ORDER BY 種別" /> とするとエラーになってしまうし、いろいろ検索してみたのですが解決できませんでした。 SelectCommand の内容を場合によって変更するにはどのようにしたらよいのでしょうか? よろしくお願いいたします。

  • DropDownListの表示に列連結した文字を表示

    VisualStudio2005で開発しています。 DropDownListの表示に列連結した文字("ORG_ID"&"SHORT_OU_JA")を表示したいのですが、下記ではエラーとなってしまいます。 どのように設定したらよいでしょうか? <asp:DropDownList ID="DropDownList1" unat="server" DataSourceID="SqlDataSource1" DataTextField="ORG_ID"&"SHORT_OU_JA" DataValueField="ORG_ID"> </asp:DropDownList><asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:meldandyConnectionString %>" SelectCommand="SELECT ORG_ID, SHORT_OU_JA FROM meldandy.WF_ORGANIZATION"></asp:SqlDataSource>

  • DropDownList に指定した値を表示したい

    <開発環境>asp.net A画面のgridviewで指定されたkeyの詳細情報をB画面のgridviewで表示しています。 B画面ではgridviewのTemplateFieldにDropDownListを作成しています。 DropDownListはSqlDataSourceをバインドさせているのですが、A画面でデータを選択し 修正ボタンを押下した時にB画面のDropDownListに初期表示する方法がわかりません。 どのようにすれば表示できるのでしょうか? ちなみにA画面でKBNNAMEが"愛知県"だとB画面で"愛知県"と表示したいです。 -------------------------------------------------------------------------------- <asp:GridView ID="grdList" CssClass="list" runat="server" AutoGenerateColumns="False" DataSourceID="sqldsList"> <Columns> <ItemTemplate> <asp:DropDownList CssClass="cnbstr" ID="cnbBB_KBN" runat="server" DataSourceID="sqldscnb1" DataTextField="KBNNAME" DataValueField="KBNORDER" AutoPostBack="True"></asp:DropDownList> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> -------------------------------------------------------------------------------- <asp:SqlDataSource ID="sqldscnb1" runat="server" ConnectionString="<%$ ConnectionStrings:InformationUseConnectionString %>" SelectCommand="SELECT KBNORDER, KBNNAME FROM table1 WHERE (NO = @NO) AND (ITEMNO = @ITEMNO) ORDER BY KBNORDER" DeleteCommandType="StoredProcedure"> <SelectParameters> <asp:SessionParameter Name="NO" SessionField="BBList_NO" Size="2" Type="String" /> <asp:Parameter DefaultValue="01" Name="ITEMNO" Size="2" Type="String" /> </SelectParameters> </asp:SqlDataSource>

  • x.aspxとx.aspx.vbの値の受渡について

    asp.net4で開発を実施しております。 FormViewを使ってデータの登録を行おうとしております。 form1.aspx.vbで設定した変数を、form1.aspx側のsqlにて使いたいと思っているのですが、どのようにすればよいでしょうか? 【form1.aspx.vb】 sub aaa = 1 end sub 【form1.aspx】 : <asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:DB1ConnectionString %>" DeleteCommand="UPDATE Table1 SET [Flg1] = @aaa WHERE [CD] = @CD" <DeleteParameters> <asp:Parameter Name="CD" Type="String" /> <asp:Parameter Name="aaa" Type="String" DefaultValue="<%= aaa %>" /> のように作ってみたのですが、うまくいきません。 どの様にすればよいのかご教示いただければと思います。  よろしくお願い致します。

  • <ASP>にTextBoxの値を設定する方法

    TextBoxに記述されたDB接続文字列を<ASP>内で設定しようと試みておりますが、失敗します。どのように記述を改めればよろしいでしょうか? ----------------- <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebForm1" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { TextBox1.Text = Application["DB_CON_STRING"].ToString(); } </script> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>無題のページ</title> </head> <body> <form id="form1" runat="server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <div> </div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="DATETIME" HeaderText="DATETIME" SortExpression="DATETIME" /> <asp:BoundField DataField="MESSAGE" HeaderText="MESSAGE" SortExpression="MESSAGE" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="form1.TextBox1.Text"★ここがうまくいかない★ SelectCommand="SELECT * FROM TEST ORDER BY ID DESC"></asp:SqlDataSource> </form> </body> </html>

  • SqlDataSource1のドロップダウンリストにページロード時に値

    SqlDataSource1のドロップダウンリストにページロード時に値をいれたいのですが どのようにしたらいいのでしょうか? SqlDataSource にDropDownList1と同じ内容のデータベース 1 りんご 2 みかん 3 ぶどう でページロード時3を指定しているようにしたいのですが 下記ではDropDownList1はできるのですがSqlDataSourceを使っているDropDownList2 では 項目一覧に存在しないため、'DropDownList2' に SelectedValue を指定することは無効です。 パラメータ名: value というエラーがになってしまいます。 どうしたらできるでしょうか? <%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) DropDownList1.Text = "3" DropDownList2.Text = "3" End Sub </script> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>無題のページ</title> </head> <body> <form id="form1" runat="server"> <div> <asp:DropDownList ID="DropDownList1" runat="server"> <asp:ListItem>りんご</asp:ListItem> <asp:ListItem>みかん</asp:ListItem> <asp:ListItem>ぶどう</asp:ListItem> </asp:DropDownList> <asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource1" DataTextField="MyLike" DataValueField="NO"> </asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>" SelectCommand="SELECT [NO], [MyLike] FROM [MyLike]"></asp:SqlDataSource> </div> </form> </body> </html>

  • gridviewの中のCSSを変更したい

    画面にチェックボックスがあります。 チェックボックスを Trueにした時、gridviewのaタグを有効にし、Falseにした時、無効にしたいと思っています。 vb側のチェックボックスを変更した時に、どのように記述すればよいでしょうか? できなければ、Falseの時に、aタグのclassを空白にしてもいいかなと思っています。 どなたかご教授ください。 <div id="containerData" class="containerData" onscroll="containerHeader.scrollLeft=this.scrollLeft;" runat="server"> <asp:GridView ID="grdList" runat="server" AutoGenerateColumns="False" DataSourceID="sqldsList" CssClass="List" DataKeyNames="NO" SelectionMode="None" CellPadding="0" CellSpacing="0" GridLines="None" > <Columns> <asp:TemplateField HeaderText="番号"> <ItemTemplate> <a class="tooltip" title='<%# Eval("NO") %>'> <custom:textLabel ID="lblNo" CssClass="No detailRow" runat="server" Text='<%# Eval("NO") %>' /> </a> </ItemTemplate> <ItemStyle CssClass="rowStyle"></ItemStyle> </asp:TemplateField> <asp:TemplateField HeaderText="名前"> <ItemTemplate> <a class="tooltip" title='<%# Eval("NAME") %>'> <custom:textLabel ID="lblName" CssClass="Name detailRow" runat="server" Text='<%# Eval("NAME") %>' /> </a> </ItemTemplate> <ItemStyle CssClass="rowStyle"></ItemStyle> </asp:TemplateField> </Columns> </asp:GridView> </ContentTemplate> </div>

  • GridView でコンボボックスの設定

    再質問をさせていただきます。 gridviewを作成しました。 -------------------------------------------------------------------------------- <asp:GridView ID="grdList" runat="server" DataSourceID="sqldsList"> <Columns> <asp:BoundField DataField="ITEMNO" HeaderText="ITEMNO"></asp:BoundField> <asp:TextBox ID="txtNAME" runat="server" Text='<%# Bind("ITEM_NAME") %>'></asp:TextBox> <ItemTemplate>   <asp:DropDownList CssClass="cnbstr" ID="cnb_KBN" runat="server"     DataSourceID="sqldscnb1" DataTextField="NAME" DataValueField="NO" AutoPostBack="True"></asp:DropDownList> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> -------------------------------------------------------------------------------- このコンボボックスに値を設定させたいのですが、ITEMNO="01"の時だけ、txtNAMEの値を初期表示したいと思っています。 RowDataBound、RowCreatedで可能かと思ったのですができずに困っています。 どなたかご教授お願いします。 Protected Sub grdList_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grdList.RowDataBound   If e.Row.RowType = DataControlRowType.DataRow Then     IF DataBinder.Eval(e.Row.DataItem, "ITEMNO").ToString() = "01" THEN       Dim dlist As DropDownList = DirectCast(e.Row.FindControl("cnb_KBN"), DropDownList)       dlist.SelectedValue = "ITEM_NAME" ←こんな感じのことをしたい     ELSE       設定しない     END IF   End If End Sub

専門家に質問してみよう