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.你试过什么?你在哪里?