2010-06-17 9 views
0

Q. afficher tous les salaires et afficher le total sal à la fin? Q. combien de colonnes sont insérées dans une seule table?sur sql question de base

+0

Veuillez utiliser l'icône de numérotation pour puces/numérotation de votre question qui le rendra plus lisible. – Chinjoo

+0

Bonjour, bienvenue sur stackoverflow.com! Malheureusement, votre question manque d'informations importantes et est donc impossible à répondre. Veuillez décrire au moins: - la structure des tables que vous interrogez, - le contexte dans lequel vous faites cela (développement d'un nouveau système, travail sur le système existant, devoirs ...), -la solution que vous avez, et où vous avez coincé. Sinon, votre question sera fermée. – sleske

Répondre

0
  1. select sal de empsal union select SUM (sal) de empsal

  2. Je pense que vous voulez obtenir le nombre de colonnes pour une table. Vous pouvez le faire suivrez requête:

    select count (*) à partir INFORMATION_SCHEMA.COLUMNS où table_name = ''

+0

Il est seulement nécessaire de scanner la table deux fois lorsque l'affiche d'origine a une version de base de données Oracle <8i. Quelque part dans la gamme 8i, le groupe par extensions est devenu disponible. Et quand vous le faites d'une manière Oracle7, utilisez au moins UNION ALL au lieu de UNION pour éviter une étape de tri inutile et éviter la possibilité de perdre le total quand une seule ligne est présente dans la table. –

+0

-1 Et bien que je ne comprends pas la question deux, votre requête en réponse est un non-sens. Cela devrait être "select count (*) from user_tab_columns où table_name = 'sa_single_table'". –

+0

oups ... J'ai remarqué le tag ... ma réponse était pour SQL – Chinjoo

0

Solution 1: Utiliser Roll Up pour fonction première question

select empno,sum(sal) from emp group by rollup((sal,empno)); 

Solution 2: utilisation Définit

Groupement
select empno,sum(sal) from emp group by GROUPING SETS ((empno),()) 
+0

Cela ne produit pas la sortie attendue, bien que la suggestion de rollup est bonne. –

+0

@Rob van Wijk: Vous avez raison, je n'ai pas lu la question correctement. – Bharat

1

Q1:

SQL> select sum(sal) 
    2 from emp 
    3 group by rollup(empno) 
    4/

    SUM(SAL) 
---------- 
     800 
     1100 
     1300 
     1500 
     1600 
     3000 
     3000 
     5000 
     950 
     1250 
     1250 
     2450 
     2850 
     2975 
    29025 

15 rows selected. 

Q2: S'il vous plaît expliquer cette question un peu plus.

Cordialement, Rob.