2016-09-27 5 views
-1

Sql-Server hat keine First() -Funktion wie MS Access. So wie würde ich konvertieren diese Abfrage in SQL Server arbeitenMS Access-Abfrage an SQL Server

SELECT 
First([MyTable].Col1) AS Col1, 
First([MyTable].Col2) As Col2, 
First([MyTable].Col3) As Col3, 
First([MyTable].Col4) As Col4, 
First([MyTable].Col5) As Col5, 
First([MyTable].Col6) AS Col6, 
[MyTable].Col7 INTO [MyTable2] 
FROM [MyTable] 
WHERE ((([MyTable].OtherCol1)='S') AND (([MyTable].OtherCol2) Is Null)) 
GROUP BY [MyTable].Col7 
HAVING ((([MyTable].Col7) Is Not Null Or ([MyTable].Col7)<>' ')); 
+0

Wo Sie zunächst() Funktion verwendet werden soll? für alle Spalten? – Poonam

+0

oops ... lassen Sie mich das korrigieren – Eminem

+0

@Eminem Wenn Sie von col7 gruppieren Was wollen Sie 'MIN, MAX oder egal' von anderen Spalten? – NEER

Antwort

0
SELECT 
min([MyTable].Col1) AS Col1, 
min([MyTable].Col2) As Col2, 
min([MyTable].Col3) As Col3, 
min([MyTable].Col4) As Col4, 
min([MyTable].Col5) As Col5, 
min([MyTable].Col6) AS Col6, 
[MyTable].Col7 
INTO [MyTable2] 
FROM [MyTable] 
WHERE ((([MyTable].OtherCol1)='S') AND (([MyTable].OtherCol2) Is Null)) 
GROUP BY [MyTable].Col7 
HAVING ((([MyTable].Col7) Is Not Null Or ([MyTable].Col7)<>' ')); 
+0

Warum verwenden Sie die Min-Funktion? – Eminem

+0

Wenn Sie Daten haben wollen, die mit allen Bedingungen in where, group by und hading zusammenhängen, müssen wir entweder min oder max verwenden, ansonsten müssen Sie die Daten mit Col7 in innner loop gruppieren und in outer loop alle hinzufügen Bedingung in Wo und Haben-Klausel enthalten – Poonam