Hi tutter
Nachdem die "X"-Schleife das erste mal durchläuft, ist X=16.
Wenn @y = 2 ist, gehts nicht mehr weiter, weil @x schin 16 ist...
Lösung: Bevor die x-Schleife startet, die Variabel reseten
...
SET @x = 1
WHILE @x <=16
...
Das liegt an unterschiedlichen Basis-Daten.
Bei VB6, VBA, Excel ist der Tag 0 der 30.12.1899
Beim SQL-Server ist der Tag 0 der 01.01.1900
In Excel-VBA:
?cdate(1) = 31.12.1899
Hallo zusammen
Habe kleine Verständnis-Probleme mit dem SS2014 mit den Data Tools:
Momentane Infrastruktur:
- SQL 2012 + Data Tools
- Visual Studio 2013 SP3
Mit VS habe ein Datenbank-Projekt erstellt und zusätzlich ein Cube.
Test-umgebung:
- SQL 2014 + Data Tools - BI (SSDTBI_x86_DEU.exe)
- Visual Studio 2013 SP3
Da SSDT nur als 32bit existiert, musste ich bei der Installation als "extra Instanz" installieren, statt "vorhandene Instanz ergänzen".
Wenn ich nun mein Projekt in VS2013 öffne, wird angezeigt, dass das Projekt nicht kompatibel ist...
Was ist eigentlich der richtige Nachfolger der "Data Tools" vom SQL-2012?
Wo liegt mein Denkfehler?
Gruß
Was ist hiermit?
SELECT TOP 1
Zähler
FROM
Test_Table
ORDER BY
CASE WHEN DATEDIFF(DAY,Datum,'01.11.2014') < 0 THEN DATEDIFF(DAY,Datum,'01.11.2014')*(-1) ELSE DATEDIFF(DAY,Datum,'01.11.2014') END
Nein. Sicher. Das war nur eine Anmerkung..
Wichtiger ist der Punkt 1.
Du willst in die Variable @V_OPP_NAME EINEN Wert speichert. Deine Abfrage liefert jedoch mehrere. Das geht also nicht...
Daher die Anregung, das Konstrukt zu ändern, indem du die die Tabelle "USER_SIEBEL" mit dbo.S_OPTY verlinkst..
Hi
1. Wenn du schon ein Cursor benutzen willst, warum verknüpfst du nicht gleich die Tabelle "USER_SIEBEL" mit dbo.S_OPTY? Wenn du Datensätze zurück bekommst, musst du nicht noch die Anzahl abfragen...
2. Wieso verlinkst du so viele Tabelle, die du eigentlich nicht brauchst?
So z.B. würde es auch tun?! Oder übersehe ich da etwas?
ET @V_ANZAHL = ( SELECT COUNT(*) FROM dbo.S_OPTY T1
LEFT OUTER JOIN dbo.S_USER T13 ON T11.PR_EMP_ID = T13.PAR_ROW_ID
WHERE T1.STATUS_CD in ( 'Pending' , 'Accepted')
--AND T13.LOGIN = @V_USER
AND (T13.LOGIN in (@V_USER) )
--OR (T6.LOGIN in (@V_USER)) )
AND T1.SUM_EFFECTIVE_DT <= GETDATE()
AND T1.SUM_EFFECTIVE_DT >= '20100601' )
Erstmal musst du überlegen, was die Verbindung zwischen den 2 Tabellen ist.
In der Tabelle "president" ist ein Feld "state_id_born". Dort ist sicher die id aus der Tabelle "state" gespeichert, damit Daten nicht redundant gespeichert werden.
Genau diese Verbindung wird mit "ON" beschrieben:
SELECT blabla FROM president INNER JOIN state ON president.state_id_born = state.id
Dann kommt die WHERE-Klausel, um die Datenmenge einzuschränken bzw. zu filtern:
... WHERE president.birth_year <= 1900
jetzt ist die Frage nach der Anzahl dieser Staaten:
Wie Cyberquest schon sagt: COUNT!
--> SELECT Count(*) FROM president INNER JOIN state ON president.state_id_born = state.id WHERE president.birth_year <= 1900
Kleiner Tip: SQL-Statements lieber strukturieren, damit du später noch durchblickst:
SELECT
Count(*)
FROM
president
INNER JOIN state
ON president.state_id_born = state.id
WHERE
president.birth_year <= 1900
SELECT min(votes) FROM election WHERE winner_loser_indic=1 AND election_year BETWEEN 1900 AND 1999
vorausgesetzt "winner_loser_indic" ist 1 wenn der Typ ein Gewinner ist und 0 wenn Verlierer..
Hi
Erstmal wäre wichtig zu wissen, wie deine Tabelle aussieht und in welchem Feld das Datum gespeichert wird und wie...
Grundsätzlich: SELECT * FROM table_name WHERE [DatumsFeld] BETWEEN ...
Wenn das Datum-Feld vom Typ datetime ist:
SELECT * FROM table_name WHERE DATEPART(year,[DatumsFeld]) BETWEEN 1900 AND 1999
Ohne Cursor hätte ich keine Idee, wie man fehlende Messwerte in die vorhanden Datenmenge interpolatorisch integrieren kann. Es müssen neue Datensätze "generiert" werden...
Archimos tantz auch auf andere Hochzeiten...
http://www.ms-office-forum.net/forum/showthread.php?p=1625529