2016-08-25 3 views
-1

Hey alle habe ich die folgenden 2 SQL Abfrage:Kombination auf 2 select-Anweisungen mit INFORMATION_SCHEMA.TABLES

SELECT 
    TABLE_NAME 
FROM 
    Exceltest.INFORMATION_SCHEMA.Tables 
WHERE 
    TABLE_TYPE = 'BASE TABLE' 

Welche produziert:

'AC Technician$' 
'Drafting$' 
'IT Tech$' 
'Maintenance$' 
'Carpentry$' 
'Masonry$' 
'Exercise$' 

Und die zweite Abfrage:

SELECT 
    COUNT(TABLE_NAME) AS rollcount 
FROM 
    Exceltest.INFORMATION_SCHEMA.Tables 
WHERE 
    TABLE_TYPE = 'BASE TABLE' 

Was mir den Wert gibt, der richtig ist.

Jetzt möchte ich beide in eine Abfrage kombinieren. Ich habe versucht:

SELECT 
    TABLE_NAME 
FROM 
    Exceltest.INFORMATION_SCHEMA.Tables 
WHERE 
    TABLE_TYPE = 'BASE TABLE' 
UNION 
SELECT 
    COUNT(TABLE_NAME) AS rollcount 
FROM 
    Exceltest.INFORMATION_SCHEMA.Tables 
WHERE 
    TABLE_TYPE = 'BASE TABLE' 

Aber ich habe den Fehler:

Fehler bei der Konvertierung, wenn der nvarchar Wert '' AC-Techniker $ '' in dem Datentyp int konvertieren.

Jede Hilfe wäre großartig!

Antwort

1

Wenn Sie die Ausgabe in derselben Spalte haben:

SELECT 
    TABLE_NAME 
FROM 
    Exceltest.INFORMATION_SCHEMA.Tables 
WHERE 
    TABLE_TYPE = 'BASE TABLE' 

UNION 

SELECT 
    CAST(COUNT(TABLE_NAME) AS VARCHAR(20)) AS rollcount 
FROM 
    INFORMATION_SCHEMA.Tables 
WHERE 
    TABLE_TYPE = 'BASE TABLE' 
+0

Nicht ganz richtig, aber mit Ihrem zweiten SELECT ich in der Lage war, es zu kombinieren mit meinem ersten SELECT und das hat funktioniert. Danke Pinwar13! Korrekte Bearbeitung an deinem Post. – StealthRT

0
SELECT 
TABLE_NAME 
FROM 
Exceltest.INFORMATION_SCHEMA.Tables 
WHERE 
TABLE_TYPE = 'BASE TABLE' 
UNION 
SELECT 
CAST(COUNT(TABLE_NAME) AS VARCHAR(50)) AS TABLE_NAME 
FROM 
Exceltest.INFORMATION_SCHEMA.Tables 
WHERE 
TABLE_TYPE = 'BASE TABLE' 
0

Verwendung dieses

SELECT 
    TABLE_NAME, 
    (
    SELECT 
     COUNT(TABLE_NAME) AS rollcount 
    FROM 
     INFORMATION_SCHEMA.Tables 
    WHERE 
     TABLE_TYPE = 'BASE TABLE' 
) AS Cnt 
FROM INFORMATION_SCHEMA.Tables 
WHERE 
    TABLE_TYPE = 'BASE TABLE'; 


+----------------------------------------------------+------+ 
| TABLE_NAME           | Cnt | 
+----------------------------------------------------+------+ 
| ARCHIVE_GLOBAL_STATUS        | 95 | 
| HISTO_GLOBAL_STATUS        | 95 | 
| HISTO_SAVE           | 95 | 
| PurgeInfo           | 95 | 
| Stats            | 95 | 

.... 

| socket_summary_by_instance       | 95 | 
| table_io_waits_summary_by_index_usage    | 95 | 
| table_io_waits_summary_by_table     | 95 | 
| table_lock_waits_summary_by_table     | 95 | 
| threads           | 95 | 
| users            | 95 | 
+----------------------------------------------------+------+ 
95 rows in set (0.02 sec) 
Verwandte Themen