Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > Как организовать запрос к запросам


Автор: antur 11.7.2006, 15:45
Есть два запроса, в них разное количество полей.
1-ый запрос:
Код

ELECT Nakl_List.[ID],Nakl_List.ID_Sales,Nakl_List.ListNo,Nakl_List.N_Podborsik,Nakl_List.N_Upakovsik,Nakl_List.BoxCount,Nakl_List.PiecesCount,Nakl_List.ID_Status,
Nakl_List.DTime1,Nakl_List.DTime2,Nakl_List.Positions,Nakl_List.UslBox,Nakl_List.Sklad,Nakl_List.QuasiList,Nakl_List.N_Label
,A.Name AS C_Podborsik,B.Name AS C_Upakovsik,C.Name AS C_Label
FROM Nakl_List
LEFT JOIN spStuff A ON A.Kod=Nakl_List.N_Podborsik
LEFT JOIN spStuff B ON B.Kod=Nakl_List.N_Upakovsik
LEFT JOIN spStuff C ON C.Kod=Nakl_List.N_Label
WHERE Nakl_List.ID_Sales=:ID_Sales AND Nakl_List.ID_Status=3

2-ой запрос:
Код

SELECT Nakl_List.[ID],Nakl_List.ID_Sales,Nakl_List.ListNo,Nakl_List.N_Podborsik,Nakl_List.N_Upakovsik,Nakl_List.BoxCount,Nakl_List.PiecesCount,Nakl_List.ID_Status,
Nakl_List.DTime1,Nakl_List.DTime2,Nakl_List.Positions,Nakl_List.UslBox,Nakl_List.Sklad,Nakl_List.QuasiList,Nakl_List.N_Label
,A.Name AS C_Podborsik,B.Name AS C_Upakovsik,C.Name AS C_Label, Nakl_List.End_BoxCount, Nakl_List.End_PiecesCount, Nakl_List.End_Rulon, Nakl_List.End_Boxes
FROM Nakl_List
LEFT JOIN spStuff A ON A.Kod=Nakl_List.N_Podborsik
LEFT JOIN spStuff B ON B.Kod=Nakl_List.N_Upakovsik
LEFT JOIN spStuff C ON C.Kod=Nakl_List.N_Label
WHERE Nakl_List.ID_Sales=:ID_Sales AND Nakl_List.ID_Status=4

Как видно, в обоих запросах выборка происходит по разному ID-статусу. А нужно теперь сортировать данные по возрастанию определенного поля (пусть ListNo) независимо от статуса 

Автор: Fazil6 12.7.2006, 10:26
в конце запроса пишешь ORDER BY ListNo 

Автор: Nuzur 29.8.2006, 18:00
antur, а слово оптимизация? Просто сделай OR либо IN там где
WHERE Nakl_List.ID_Sales=:ID_Sales AND Nakl_List.ID_Status=4
 и все.
WHERE Nakl_List.ID_Sales=:ID_Sales AND Nakl_List.ID_Status=4
OR
Nakl_List.ID_Sales=:ID_Sales AND Nakl_List.ID_Status=3

Удачи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)