Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 запрос  [new]
vah
Member

Откуда:
Сообщений: 2649
Скажите пожалуйста, каким запросом можно такой результат

45	99	
45	97	
478	99	
478	97


представить в виде

45	97	
45	97	
478	99	
478	99

?


Заранее благодарен.
17 дек 09, 12:15    [8079687]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
msn13
Member

Откуда: Скорый поезд №42
Сообщений: 1372
vah,

и где логика?
17 дек 09, 12:23    [8079759]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
Glory
Member

Откуда:
Сообщений: 104760
msn13
vah,

и где логика?

А логику нужно самому придумать. vah не загружает вопросы такими подробностями, как логика
17 дек 09, 12:26    [8079781]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
Supra93
Member

Откуда:
Сообщений: 8174
SELECT F1, CASE F1 WHEN 45 THEN 97 ELSE 99 END
FROM 
(SELECT 45 F1,99 F2
UNION ALL
SELECT 45,97
UNION ALL
SELECT 478,99
UNION ALL
SELECT 478,99) T
17 дек 09, 12:29    [8079807]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
Supra93
Member

Откуда:
Сообщений: 8174
SELECT top 2 45, 97
FROM 
(SELECT 45 F1,99 F2
UNION ALL
SELECT 45,97
UNION ALL
SELECT 478,99
UNION ALL
SELECT 478,99) T
union all
SELECT top 2 478, 99
FROM 
(SELECT 45 F1,99 F2
UNION ALL
SELECT 45,97
UNION ALL
SELECT 478,99
UNION ALL
SELECT 478,99) T
17 дек 09, 12:30    [8079818]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
vah
Member

Откуда:
Сообщений: 2649
Glory
msn13
vah,

и где логика?

А логику нужно самому придумать. vah не загружает вопросы такими подробностями, как логика


Только не бейте )))

Мне по-наследству досталась такая прекрасная таблица.

nkv        nkl
1	7
2	8
3	9
4	7

где nkv - обычное поле с уникальными значениями,
nkl - не обычное поле )), в него пишутся значения значения последовательно до тех пор пока есть nkv. Причем жесткой связи между nkv и nkl нет.
На клиенте это реализовано в цикле. Хочется сделать в запросе без курсора. Вот.
17 дек 09, 12:35    [8079872]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
и все таки , где логика ???? как подбирать пары nkv + nkl ,по какому критерию их двигать то????
-------------------------------------
Jedem Das Seine
17 дек 09, 12:41    [8079916]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
vah
Member

Откуда:
Сообщений: 2649
Maxx
и все таки , где логика ???? как подбирать пары nkv + nkl ,по какому критерию их двигать то????
-------------------------------------
Jedem Das Seine


Писать в nkl до тех пор пока есть nkv.

Если была бы четкая логика, может я и сам бы дорубил.))
17 дек 09, 12:43    [8079934]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2631
По-моему, это случай, когда лучше сделать все заново.
17 дек 09, 12:44    [8079947]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
Glory
Member

Откуда:
Сообщений: 104760
vah
Maxx
и все таки , где логика ???? как подбирать пары nkv + nkl ,по какому критерию их двигать то????
-------------------------------------
Jedem Das Seine


Писать в nkl до тех пор пока есть nkv.

Если была бы четкая логика, может я и сам бы дорубил.))

И почему для nkl=4 nkv =7, а не 10 ?
17 дек 09, 12:45    [8079954]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
Supra93
Member

Откуда:
Сообщений: 8174
vah

На клиенте это реализовано в цикле

Покажите как это сделано на клиенте
17 дек 09, 12:46    [8079960]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
vah
Member

Откуда:
Сообщений: 2649
Glory
vah
Maxx
и все таки , где логика ???? как подбирать пары nkv + nkl ,по какому критерию их двигать то????
-------------------------------------
Jedem Das Seine


Писать в nkl до тех пор пока есть nkv.

Если была бы четкая логика, может я и сам бы дорубил.))

И почему для nkl=4 nkv =7, а не 10 ?


Потомучто количество строк nkl и nkv не равно. Недостающие данные начинают заполняться сначала.
17 дек 09, 12:49    [8079984]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
Glory
Member

Откуда:
Сообщений: 104760
vah
Glory
vah
Maxx
и все таки , где логика ???? как подбирать пары nkv + nkl ,по какому критерию их двигать то????
-------------------------------------
Jedem Das Seine


Писать в nkl до тех пор пока есть nkv.

Если была бы четкая логика, может я и сам бы дорубил.))

И почему для nkl=4 nkv =7, а не 10 ?


Потомучто количество строк nkl и nkv не равно. Недостающие данные начинают заполняться сначала.

Каких еще строк - у вас 4 записи в примере и все заполнены
17 дек 09, 12:53    [8080007]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
vah
Member

Откуда:
Сообщений: 2649
--__Александр__--
По-моему, это случай, когда лучше сделать все заново.


Я бы с радостью, но на ней столько всего завязано..
17 дек 09, 12:54    [8080013]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
vah
Member

Откуда:
Сообщений: 2649
Supra93
vah

На клиенте это реализовано в цикле

Покажите как это сделано на клиенте




        strSQL = "select * from www"
        Set rstEmployees = New ADODB.Recordset
        rstEmployees.Open strSQL, Cnxn, adOpenDynamic, adLockOptimistic
        
        strSQL1 = me1!qqq.RowSource
        Set rstEmployees1 = New ADODB.Recordset
        rstEmployees1.Open strSQL1, Cnxn, adOpenDynamic, adLockOptimistic
        
        strSQL2 = me1!yyy.RowSource
        Set rstEmployees2 = New ADODB.Recordset
        rstEmployees2.Open strSQL2, Cnxn, adOpenDynamic, adLockOptimistic
        
        If rstEmployees1.EOF = False And rstEmployees2.EOF = False Then
            Do While rstEmployees1.EOF = False Or rstEmployees2.EOF = False
            
            If rstEmployees1.EOF = False Then NKl = rstEmployees1!NKl
            If rstEmployees2.EOF = False Then NKv = rstEmployees2!NKv
            
                rstEmployees.AddNew
                rstEmployees![NOb] = me1!NOb
                rstEmployees![NKv] = NKv
                rstEmployees![Ndg] = me1!Ndg
                rstEmployees![Nklie] = NKl
                rstEmployees!IdИпот = IDи
                If me1!СпрРасч <> 0 Or IsNull(me1!СпрРасч) = False Then rstEmployees![NSpr] = Nz(me1!СпрРасч)
                
             If rstEmployees1.EOF = False Then rstEmployees1.MoveNext
             If rstEmployees2.EOF = False Then rstEmployees2.MoveNext
             
            Loop
        End If
17 дек 09, 12:56    [8080038]     Ответить | Цитировать Сообщить модератору
 Re: запрос  [new]
vah
Member

Откуда:
Сообщений: 2649
        strSQL = "select * from www"
        Set rstEmployees = New ADODB.Recordset
        rstEmployees.Open strSQL, Cnxn, adOpenDynamic, adLockOptimistic
        
        strSQL1 = me1!qqq.RowSource
        Set rstEmployees1 = New ADODB.Recordset
        rstEmployees1.Open strSQL1, Cnxn, adOpenDynamic, adLockOptimistic
        
        strSQL2 = me1!yyy.RowSource
        Set rstEmployees2 = New ADODB.Recordset
        rstEmployees2.Open strSQL2, Cnxn, adOpenDynamic, adLockOptimistic
        
        If rstEmployees1.EOF = False And rstEmployees2.EOF = False Then
            Do While rstEmployees1.EOF = False Or rstEmployees2.EOF = False
            
            If rstEmployees1.EOF = False Then NKl = rstEmployees1!NKl
            If rstEmployees2.EOF = False Then NKv = rstEmployees2!NKv
            
                rstEmployees.AddNew
                rstEmployees![NOb] = me1!NOb
                rstEmployees![NKv] = NKv
                rstEmployees![Ndg] = me1!Ndg
                rstEmployees![Nklie] = NKl
                rstEmployees!IdИпот = IDи
                If me1!СпрРасч <> 0 Or IsNull(me1!СпрРасч) = False Then rstEmployees![NSpr] = Nz(me1!СпрРасч)
                
             If rstEmployees1.EOF = False Then rstEmployees1.MoveNext
             If rstEmployees2.EOF = False Then rstEmployees2.MoveNext
             
            Loop
        End If

Сразил всех наповал.
17 дек 09, 13:48    [8080419]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить