2013-12-01 8 views
0

В моем приложении, когда пользователь регистрируется на своем имени пользователя, а дата-время вставляется в таблицу с именем ORDER_ID, это автоматически увеличивается на единицу. Затем я вытаскиваю этот номер, чтобы использовать его позже, используя SELECT SCOPE_IDENTITY(). В этот момент пользователь должен ответить на некоторую личную информацию, и после ответа пользователь может выбрать некоторые продукты, которые он хочет вернуть или заказать. Наконец, после того, как пользователь сделал свой выбор, вся информация сохраняется в таблице ORDERS так:Как написать инструкцию select для таблицы заказов?

enter image description here

Как бы идти о написании моего запроса, так что группы SQL всех заказов полностью и по отдельности?

+4

1. Можете ли вы привести конкретный пример результата вы хотели бы получить? 2. Что вы пробовали? Где вы попали? – Heinzi

ответ

0

Пример:

//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(); 
0

Вы должны иметь таблицу отдельно, которая хранит данные о пользователях, как имя пользователя и прочее, и первичный ключ этой таблицы, чтобы однозначно идентифицировать каждого пользователя, и вы использовали, что первичный ключ в качестве внешнего ключа в этой таблице заказов, чтобы ссылаться на Заказы для каждого пользователя. Я действительно не знаю, что вы подразумеваете под группированием ордеров «SQL-группы все заказы полностью и отдельно».

Чтобы показать данные, в которых все заказы сгруппированы каждым пользователем, вам необходимо использовать инструмент отчетности. Sql-сервер предназначен для хранения информации, не отображающей информацию. Для этой цели вы можете использовать SSRS бесплатный инструмент Microsoft.

0

Вы можете использовать следующий запрос, который возвращает продукт в запятую. эти значения расколото («») метод, чтобы получить пользовательский продукт в соответствии с порядком

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 
Смежные вопросы