2012-05-21 4 views
-2

У меня есть вопрос:Несколько запросов в одном запросе

Возможно ли собрать несколько запросов в одном запросе?

т.е. в форме у меня есть 10-запрос, как это:

1. SELECT ThisValue FROM thatTable1 WHERE 
2. SELECT ThisValue FROM thatTable2 WHERE 
       ....... 
10.  SELECT ThisValue FROM thatTable10 WHERE 

, где я должен написать то этот код в Access.It можно в доступе или только я могу сделать это в MS SQL и ... .

CREATE PROC dbo.proc_app_CollectControlData 
AS 
    SET NOCOUNT ON 

    DECLARE @t TABLE 
    (
     CONTROLNAME nvarchar(74), 
     CONTROLVALUE nvarchar(255) 
    ) 

    -- Now we collect the data for the 10 different controls 
    INSERT INTO @t 
    (CONTROLNAME, CONTROLVALUE) 
    SELECT 'MyFirstControl', 
      ThisValue 
    FROM dbo.ThatTable 
    WHERE Condition1 

    ... 

    INSERT INTO @t 
    (CONTROLNAME, CONTROLVALUE) 
    SELECT 'MyTenthControl', 
      ThisValue 
    FROM dbo.ThatTable 
    WHERE Condition10 

    -- And now we return all found data to the client 
    SELECT * FROM @ 
    SET NOCOUNT OFF 
GO 

ответ

3

Я думаю, что вы ищете UNION Operator.

SELECT 'MyFirstControl' AS ControlName, ThisValue AS ControlValue 
FROM thatTable1 
WHERE Condition1 
UNION ALL 
SELECT 'MySecondControl' AS ControlName, ThisValue AS ControlValue 
FROM thatTable2 
WHERE Condition2 
UNION ALL 
SELECT 'MyThirdControl' AS ControlName, ThisValue AS ControlValue 
FROM thatTable3 
WHERE Condition3 
+0

не UNION ALL, я пытаюсь найти другой способ – Baper

+1

Почему бы не UNION ALL? Это идеально подходит для требований, которые вы дали. Не очень полезно спросить, как что-то можно сделать, тогда, когда вам говорят, что это можно сделать, укажите, что вам нужно, чтобы это было сделано по-другому. Если вы не хотите, чтобы это было сделано с помощью 'UNION' /' UNION ALL', тогда вы должны были закрепить это в своем вопросе. – GarethD

+0

http://social.msdn.microsoft.com/Forums/en-US/accessdev/thread/e3acc5af-1bd9-42de-93f1-209f4dfc11ed/#2b9484a2-9b58-4048-a57e-85e515477c8e – Baper

3
SELECT ThisValue FROM thatTable1 WHERE ... 
UNION ALL 
SELECT ThisValue FROM thatTable2 WHERE ... 
UNION ALL 
SELECT ThisValue FROM thatTable10 WHERE ... 
+0

Не UNIONALL .I нужен другой способ – Baper

+2

Вы не возражаете развернутую, почему вы не хотите использовать оператор, который специально был разработан, чтобы сделать то, что вы спрашиваете? – Karl

+0

somthing like [this] (http://social.msdn.microsoft.com/Forums/en-US/accessdev/thread/e3acc5af-1bd9-42de-93f1-209f4dfc11ed/#2b9484a2-9b58-4048-a57e-85e515477c8e) – Baper

Смежные вопросы