Вставить значения в таблицу на основе другой таблицы - PullRequest
1 голос
/ 28 марта 2011

Мне нужно написать хранимую процедуру. У меня есть таблица с некоторыми данными, теперь мне нужно вставить соответствующие данные в другую таблицу в соответствии с некоторым условием

Пример:

Table 1

Name     Class Math Physics English
Alok     V     60   50      45
Bobby    V     78   87      86
Chandini VI    56   76      56
Dolly    VII   87   56      66

На основании этого условия

Insert Values into Table2 
If class =V  
(Table2.Physics=Select sum(Table1.Physics) from Table1 where Class like ‘V’
 Table2.Maths=0 and table2.English=0)

If class =VI  
(Table2.Maths=Select sum(Table1.Maths) from Table1 where Class like ‘VI’
 Table2.Physics=0 and table2.English=0)

If class =VI  
(Table2.English =Select sum(Table1.English) from Table1 where Class like ‘VII’
 Table2.Physics=0 and table2.Maths =0)
]

Table 2

Class Math Physics English
V     0    137     0
VI    56   0       0
VII   0    0       66

Пожалуйста, помогите мне

Ответы [ 2 ]

3 голосов
/ 28 марта 2011
INSERT
INTO    table2
SELECT  class,
        SUM(CASE WHEN class = 'V' THEN Physics ELSE 0 END),
        SUM(CASE WHEN class = 'VI' THEN Math ELSE 0 END),
        SUM(CASE WHEN class = 'VII' THEN English ELSE 0 END)
FROM    table1
GROUP BY
        class
0 голосов
/ 28 марта 2011

Нужно ли использовать хранимую процедуру или даже другую таблицу?

A позволяет лучше просматривать серверов, так как они никогда не синхронизируются с реальными данными. (Реальных проблем с производительностью тоже нет.)

CREATE VIEW table2 AS
SELECT class,
       SUM(CASE WHEN table1.class = 'V' THEN table1.physics ELSE 0 END),
       SUM(CASE WHEN table1.class = 'VI' THEN table1.math ELSE 0 END),
       SUM(CASE WHEN table1.class = 'VII' THEN table1.english ELSE 0 END)
FROM table1
GROUP BY class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...