Sql 如何为订单表编写select语句?

Sql 如何为订单表编写select语句?,sql,sql-server,Sql,Sql Server,在我的应用程序中,当用户登录用户名并将日期时间插入名为ORDER\u ID的表时,该表将自动递增1。然后,我使用选择SCOPE\u IDENTITY()将该数字拉回来供以后使用。此时,用户需要回答一些个人信息,回答后,用户可以选择一些他希望退货或订购的产品。最后,一旦用户做出选择,所有信息都会保存在ORDERS表中,如下所示: 如何编写查询,以便SQL将所有订单完全分开分组?示例: //If connection is closed > open..if open, skip

在我的应用程序中,当用户登录用户名并将日期时间插入名为
ORDER\u ID
的表时,该表将自动递增1。然后,我使用
选择SCOPE\u IDENTITY()
将该数字拉回来供以后使用。此时,用户需要回答一些个人信息,回答后,用户可以选择一些他希望退货或订购的产品。最后,一旦用户做出选择,所有信息都会保存在
ORDERS
表中,如下所示:

如何编写查询,以便SQL将所有订单完全分开分组?

示例:

//If connection is closed > open..if open, skip 
        int connOpen = 0;
        if (connection.State == ConnectionState.Closed)
        {
            connection.Open();
            connOpen = 1;
        }

        //Query
        String query = @"SELECT * FROM Resultaat WHERE Order_ID = @ID";

        SqlCommand cmd = new SqlCommand(query, connection);
        cmd.Parameters.Add(new SqlParameter("ID", idInt));

        //Read the result
        using (SqlDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                String name = reader["User"].ToString();
                String product = reader["Product"].ToString();
                int id = (int)reader["Order_ID"];
            }

            // IF OPEN THEN CLOSE
            if (connOpen == 1)
                connection.Close();
        }
        cmd.Parameters.Clear();

您应该有一个单独的表,其中保存有关用户名和内容等用户的数据,该表上有一个主键以唯一地标识每个用户,并且您使用该主键作为此Orders表中的外键来引用每个用户的订单。我真的不知道你所说的订单分组是什么意思“SQL将所有订单完全分开分组”


要显示按每个用户对所有订单进行分组的数据,需要使用报表工具sql server is存储信息而不是显示信息。为此,您可以使用微软的免费工具SSRS。

您可以使用以下查询返回逗号形式的产品。 这些值通过拆分(“,”)方法按照订单获取用户产品

SELECT O1.OrderId ,
       Stuff((SELECT ', ' + Product 
              FROM   tblOrder O2 
              WHERE   O2.OrderId=O1.OrderId
              FOR XML PATH('')), 1, 2, '') Product 
FROM   tblOrder O1 
GROUP  BY O1.OrderId

1.你能举一个你想得到的结果的具体例子吗?2.你试过什么?你在哪里?