2009-07-28 16 views
0

Ich werde meine Zweifel umschreiben, um leichter zu verstehen. Ich habe eine Tabelle mit dem Namen SeqNumbers, die nur eine Spalte von Daten mit dem Namen PossibleNumbers hat, die einen Wert von 1 bis 10.000 hat. Dann habe ich eine andere Tabelle mit dem Namen Terminals und eine der Spalten haben die Seriennummern der Terminals. Was ich will ist, bekommen alle SerialNumbers, die nicht in der Terminals Tabelle von 1 bis 10.000 existiert. Ich habe die SeqNumbers Tabelle erstellt, nur um dies zu tun ... vielleicht gibt es eine andere Lösung, ohne es zu benutzen ... das ist gut für mich. Die Abfrage ich habe, ist:SQL Query Join Elemente

SELECT PossibleNumbers from SeqNumbers 
Where PossibleNumbers NOT IN (SELECT SerialNumbers from Terminals)** 

Grundsätzlich ich alle Seriennummern der Endgeräte aufgelistet werden sollen, die nicht in der Datenbank nicht vorhanden ist. Diese Abfrage funktioniert gut, denke ich ... aber das Problem ist, dass ich nicht alle Ergebnisse in einer einzigen Spalte möchte. Ich möchte diese Ergebnisse in 4 oder 5 Spalten angezeigt werden. Für meinen Zweck kann ich die Ergebnisse der Abfrage nur so verwenden. Ich kann dazu keine programmgesteuerten Methoden verwenden.

Hope this jetzt klar ist ... Vielen Dank für die Hilfe ...

+1

Können wir das sehen Abfrage? (Oder eine ausreichend getarnte Version davon) – Sean

+0

@Carlos: Bitte markieren Sie Ihre Fragen mit der von Ihnen verwendeten Sprache oder Technologie (z. B. SQL, Java, .NET usw.). Sie werden viel mehr Zuschauer wegen der interessanten Tagliste bekommen. – Zifre

Antwort

2
select x, x+1000 from tablename 

Will, die es für Sie tun?

+0

Sorry für den Downvote, weil ich weiß, dass sich die Frage geändert hat. Aber das ist nicht, was er will, und wir müssen eine bessere Antwort bekommen, die darüber abgestimmt wird. –

+0

Entschuldigung ... das würde nicht tun, was ich wollte. danke trotzdem –

0

Sie können eine Skriptsprache verwenden, um die MySQL-Ergebnisse zu parsen, um sie beliebig zu formatieren. Verwenden Sie PHP, um auf die Datenbank zuzugreifen? Wenn ja, lass es mich wissen und ich kann einen für dich kochen.

Ich habe gerade Ihre neue aktualisierte Frage gesehen. In diesem Fall wird die Reihenfolge der Spalten durch Ihre SELECT Anweisung geordnet und Sie können auch sortieren. Hier ist ein Beispiel:

SELECT Column1, Column2 FROM my_table ORDER BY Column1, Column2 ASC 
+0

Nein ich benutze nicht PHP. Ich möchte nur eine Abfrage im SQL Server machen, um die Ergebnisse zu erhalten ... Ich habe in der Antwort von Chris Shaffer besser erklärt, was ich will. Danke Jungs für all die Hilfe ... das ist eine seltsame Abfrage für mich und ich brauche es wirklich. –

2

Wenn ich das richtig lese, müssten Sie wahrscheinlich ein Self-Join machen; so etwas wie:

SELECT 
    LeftValues.ColA, 
    RightValues.ColA AS ColB 
FROM YourTable LeftValues 
    LEFT JOIN YourTable RightValues ON LeftValues.ColA = RightValues.ColA - 1000 
WHERE LeftValues.ColA < 1000 

Hinweis: Verwenden Sie das JOIN, dass für Sie Sinn macht (links, wenn Sie bereit sind, zu akzeptieren NULL-Werte in ColB, innere, wenn Sie sie wollen, wo beide Werte vorhanden sind)

+0

Ich verstehe deine Frage nicht ... Ich werde genau beschreiben, was ich will, vielleicht bin ich nicht klar gewesen ... Entschuldigung. Ich habe eine Tabelle TabA, die ich mit einer einzigen Spalte mit Zahlen von 1 bis 10.000 erstellt hatte. Ich habe eine andere Tabelle TabB mit einigen Daten und eine der Spalten sind Seriennummern os Produkte. Ich möchte alle Seriennummer wissen, die nicht in diesem TabB von 1 bis 10.000 existiert. Ich habe diese Abfrage bereits mit IS NOT in ... gemacht, aber ich bekomme alle Ergebnisse in einer einzigen Spalte. Jetzt möchte ich diese Ergebnisse durch mehrere Spalten trennen. Stellen Sie sich vor, 100 für jeden zum Beispiel. 5 oder 6 Säulen wären schön. –

+0

Es klingt also wie das, was Sie wollen, dient nur zu Anzeigezwecken und dass die ColA und ColB Werte keine Korrelation haben?Meine Abfrage basiert auf der Annahme, dass die Werte mathematisch korreliert sind (zB colA = ColB - 1000). Während eine nicht korrelierte Lösung in SQL möglich ist, wird sie wahrscheinlich nicht der beste Ansatz sein; Sie sollten die Abfrage wahrscheinlich an eine bestimmte Anwendung zurückgeben und die Anwendung so anzeigen lassen, wie Sie es benötigen. Wenn eine SQL-Lösung erforderlich ist, aktualisieren Sie Ihre Frage, um weitere Details/bessere Beispiele und Tags für Ihren SQL-Dialekt einzubeziehen. –

+0

Hallo Chris, ich habe meine Frage aktualisiert .. vielleicht kannst du es jetzt besser verstehen. Ich kann nicht eine andere Anwendung verwenden, um den Job zu tun .. ich muss wirklich mehrere Spalten mit den Ergebnissen haben .. und wie Sie jetzt sehen können, gibt es keine mathematische Korrelation zwischen den Zahlen ... Ich hoffe, Sie können helfen. Danke vielmals –