Mi sento così vicino ... Penso che il mio problema è come sto usando la funzione MOD combinata con la funzione ROW_NUMBER()
, ma non lo faccio capisco cosa sto sbagliandoSelezione di ogni ennesima riga da SQL Server 2008 risultato della query dove tabella non ha riga id riga
Sto usando la funzione ROW_NUMBER()
perché ho bisogno di un modo per selezionare ogni "ennesima" riga. Ho letto le altre pagine su questo (li ho usati per creare il mio SQL) ... ma sto ricevendo un errore da SQL Server. Ho bisogno del join della tabella interna (2 istanze della tabella Tick_OneMin
, H1
e H2
) per ottenere i prezzi di diversi titoli allo stesso tempo.
Se io commento la linea con la funzione MOD
... SQL esegue bene ... ma se ho messo nel .... SQL Server genera il messaggio di errore:
Un'espressione di tipo non booleano specificato in un contesto in cui è prevista una condizione, vicino a "MOD".
Ecco il mio tentativo di SQL--
SELECT
ROW_NUMBER() OVER (ORDER BY H1.CombDateTime ASC) AS RowID,
H1.CombDateTime,
H1.Close_PX as 'TYA_Close',
H2.Close_PX 'ESA_Close'
FROM
Tick_OneMin as H1, Tick_OneMin as H2
WHERE
H1.Ticker = 'TYA'
AND H2.Ticker = 'ESA'
AND H1.CombDateTime >= '12/28/2012 10:00 AM'
AND H1.CombDateTime <= '12/28/2012 10:30 AM'
AND H1.CombDateTime = H2.CombDateTime
AND RowID MOD 4 = 0
-- this "RowID MOD 4 = 0" is throwing an error in SQL Server
ORDER BY
H1.CombDateTime ASC
Il mio tavolo è simile al seguente (1 tabella con 3 colonne)
Tabella Tick_OneMin
Ticker - CombDateTime - Close_PX
------------------------------------
ES - 1/3/2012 10:00 AM - 1470
ZN - 1/3/2012 10:00 AM - 132.5
ES - 1/3/2012 10:01 AM - 1475
ZN - 1/3/2012 10:01 AM - 133
e Voglio creare il seguente output
Date - ZN.Price - ES.Price
==== ======== ========
1/3/2012 - 132.5 - 1470
1/3/2012 - 133 - 1475
Qualche motivo per cui SQL SErver genera l'errore?
Inoltre: SQL Server utilizza l'operatore '%' - ** non ** a 'MOD' .... –
@marc_s sì, grazie –
Questo ha funzionato perfettamente ... grazie. – user1991508