Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.11.28;
Скачать: [xml.tar.bz2];

Вниз

Помогите с запросом ................   Найти похожие ветки 

 
03111978   (2010-09-02 12:04) [0]

Есть табличка вида :

Оплата    Иванов
Оплата    Петров
Оплата    Сидоров
Оплата    Кукушкин
Оплата    Мордушкин

Необходимо сделать табличку вида :

Оплата    Иванов
Оплата    Петров
Оплата    Сидоров
Оплата    Кукушкин
Оплата    Мордушкин
Задолженность    Иванов
Задолженность    Петров
Задолженность    Сидоров
Задолженность    Кукушкин
Задолженность    Мордушкин


 
brother ©   (2010-09-02 12:07) [1]

> Есть табличка вида :

где?


 
Сергей М. ©   (2010-09-02 12:07) [2]

Было 5 записей, нужно чтобы стало 10.
Сложности с запросом на вставку ? Или что ?


 
03111978   (2010-09-02 12:09) [3]


> brother ©   (02.09.10 12:07) [1]
>
> > Есть табличка вида :
>
> где?


MS SQL


 
brother ©   (2010-09-02 12:09) [4]

> MS SQL

+1 к информации ;)


 
brother ©   (2010-09-02 12:15) [5]

http://segfault.kiev.ua/smart-questions-ru.html


 
pavel_guzhanov ©   (2010-09-02 12:15) [6]

предполагаю, что тут нужен ALTER TABLE


 
И. Павел ©   (2010-09-02 12:17) [7]

> [0] 03111978   (02.09.10 12:04)

Какие у таблицы поля? Какие там записи сейчас, и какие джолжны быть?
Что-то мне кажется, что автору нужно сделать не таблицу, а запрос с UNION.


 
03111978   (2010-09-02 12:19) [8]


> Что-то мне кажется, что автору нужно сделать не таблицу,
>  а запрос с UNION.


да, запрос нужен


 
И. Павел ©   (2010-09-02 12:20) [9]

> да, запрос нужен

Нафиг это программирование, пойду в гадалки :)


 
03111978   (2010-09-02 12:22) [10]


> Нафиг это программирование, пойду в гадалки :)

В тебе написано, что нужен запрос, который сформирует табличку нужного вида, хоть ходи, хоть не ходи к гадалке :-)


 
И. Павел ©   (2010-09-02 12:23) [11]

В самом примитивном виде (если есть таблица оплат и задолженностей, содержащие 2 столбца: сумму и ФИО), запрос будет примерно таким:

SELECT summa, name FROM oplati
UNION
SELECT summa, name FROM zadolz


Но, конечно, name должен располагаться в справочнике, т.е. нужно будет добавить Join.


 
brother ©   (2010-09-02 12:23) [12]

> В тебе написано

O_o


 
И. Павел ©   (2010-09-02 12:25) [13]

> хоть не ходи к гадалке :-)

И мею ввиду, что сам собираюсь в гадалки податься, а не вас туда отправляю, если вы это имеете ввиду :)


 
Сергей М. ©   (2010-09-02 12:25) [14]


> 03111978   (02.09.10 12:22) [10]


Ты всерьез полагаешь что для этого тебе  нужен ОДИН запрос ?)
Наивный чукотский юноша)


 
03111978   (2010-09-02 12:26) [15]


> brother ©   (02.09.10 12:23) [12]
>
> > В тебе написано
>
> O_o
>


Ну опечатка . И что ? только поболтать можешь ? Или подковырнуть кого ?


 
03111978   (2010-09-02 12:27) [16]


> Сергей М. ©   (02.09.10 12:25) [14]
>
>
> > 03111978   (02.09.10 12:22) [10]
>
>
> Ты всерьез полагаешь что для этого тебе  нужен ОДИН запрос
> ?)
> Наивный чукотский юноша)
>


Я попросил, совета, а вы здесь целую дискуссию развели )))))))))))))))))


 
И. Павел ©   (2010-09-02 12:27) [17]

> 03111978

Кстати, нужно только вывести итоговую "таблицу" на экран, или сохранить ее в базе?


 
Сергей М. ©   (2010-09-02 12:29) [18]


> 03111978   (02.09.10 12:27) [16]
>
>


Да как же тебе совет дать, мил человек, коль ты не можешь вразумительно или не желаешь конкретизировать что тебе нужно ?

"Сформировать табличку" - понятие весьма растяжимое)

Я ж тебя спросил в [2], а воз и ныне там)


 
brother ©   (2010-09-02 12:31) [19]

> Ну опечатка . И что ?

прочитай [5] вопросы отпадут...


 
03111978   (2010-09-02 12:32) [20]


> И. Павел ©   (02.09.10 12:27) [17]
>
> > 03111978
>
> Кстати, нужно только вывести итоговую "таблицу" на экран,
>  или сохранить ее в базе?


Как вывести на экран, так и сохранить в базе


 
И. Павел ©   (2010-09-02 12:36) [21]

> Как вывести на экран, так и сохранить в базе

Тогда, наверное, можно сделать такой запрос (во всяком случае в MS SQL SERVER):

SELECT a.summa, a.FIO
INTO newt
FROM
(SELECT summa, FIO FROM oplati
UNION
SELECT summa, FIO FROM zadolz) AS a


 
Сергей М. ©   (2010-09-02 12:36) [22]


> вывести на экран


Запрос номер раз.


> сохранить в базе


Запрос номер два.

Минимум ДВА запроса требуется, ущучиваешь ?)
Тебя какой из них интересует ?)


 
Сергей М. ©   (2010-09-02 12:38) [23]


> И. Павел ©   (02.09.10 12:36) [21]


> FROM zadolz


Нет у него никакой "zadolz")
Он же говорит "есть табличка", а не "есть две таблички")


 
03111978   (2010-09-02 13:00) [24]

сделал так : 2 таблички (Dolg И Oplata)
Теперь необходимо сформировать еще одну табличку и вывести ее на экран, в которой будет 2 строчки, долг и оплата, по конкретно выбранному человеку.


 
03111978   (2010-09-02 13:04) [25]

таблица Oplata :                                      таблица Dolg :

Иванов  56                                               Сидоров 5
Сидоров 45                                               Иванов  12
                                                             
Необходимо получить :

Таблица: Rez (Например по Иванову)

Оплата                            Иванов                      56
Задолженность                 Иванов                      12


 
И. Павел ©   (2010-09-02 13:04) [26]

> [24] 03111978   (02.09.10 13:00)

Чем [21] не устраивает?


 
Сергей М. ©   (2010-09-02 13:11) [27]


> 03111978   (02.09.10 13:00) [24]
>
> сделал так : 2 таблички (Dolg И Oplata)


Что что ты маловато баблиек наплодил.. Давай ышшо с десяток наделай)

Почему, спрашивается, не сделать ОДНУ табличку с тремя полями:

Ф.И.O.             Оплата   Задолженность

Иванов            100                0
Петров             50                 50
Сидоров           20                 80
Кукушкин         0                 100
Мордушкин      43                 57

??


 
Сергей М. ©   (2010-09-02 13:11) [28]

> баблиек

табличек


 
03111978   (2010-09-02 13:12) [29]


> И. Павел ©   (02.09.10 13:04) [26]
>
> > [24] 03111978   (02.09.10 13:00)
>
> Чем [21] не устраивает?


Этот запрос каждый раз создает табличку, да спасибо, все верно, работает, но если выполнить этот запрос еще раз, то он опять создает табличку, но она там уже есть и запрос не отрабатывает. Наверное все таки в моем случае лучше сделать как в
> [25]


 
03111978   (2010-09-02 13:16) [30]


> Почему, спрашивается, не сделать ОДНУ табличку с тремя полями:
>  

Потому что в итоге необходимо получить следующее :

Оплата                ФИО         Январь                       .......             Декабрь

Оплата               Кукушкин         0                        .......                   100
Задолженость     Кукушкин        43                       ........                     57


 
И. Павел ©   (2010-09-02 13:17) [31]

> Этот запрос каждый раз создает табличку

Ну очищайте ее перед новым созданием, и все. Или DELETE или DROP TABLE.

А лучше, соедините оплаты и начисления изначально в одну таблицу. Например: можно для каждой записи добавить флаг: начисление это, оплата (тогда можно быдет предусмотреть несколько типов оплат).

А если оплат и начислений для каждого человека не может быть несколько, то [27]


 
И. Павел ©   (2010-09-02 13:18) [32]

> Потому что в итоге необходимо получить следующее :

Еще одно поле в таблице: период оплаты/начисления. Иначе каждый год придется добавлять еще 12 новых полей :)


 
Сергей М. ©   (2010-09-02 13:25) [33]


> Потому что в итоге необходимо получить следующее


А вот то что пользователь в результате должен увидеть - это уже из другой оперы. И опять же нт никакого повода плодить кучу таблиц, усложняя жизь себе и людям.

Ф.И.O.             Вид                               Месяц             Сумма

Иванов            Задолженность              Январь                   0
Иванов            Оплата                          Январь                   100
Иванов            Задолженность              Февраль                 50
Иванов            Оплата                          Февраль                 50
Петров            Задолженность              Январь                   44
Петров            Оплата                          Январь                   56
Петров            Задолженность              Февраль                 99
Петров            Оплата                          Февраль                 1


 
Petr V. Abramov ©   (2010-09-02 16:07) [34]


> Почему, спрашивается, не сделать ОДНУ табличку с тремя полями:
>
>
> Ф.И.O.             Оплата   Задолженность
>
> Иванов            100                0
> Петров             50                 50
> Сидоров           20                 80
> Кукушкин         0                 100
> Мордушкин      43                 57


проще
ФИО                сумма   флаг
----                ------   ---
Иванов            100        1        
Петров             150       1        
Сидоров           20         1        
Кукушкин         0           1    
Мордушкин       43         1      
Иванов            110       -1      
Петров             50        -1      
Сидоров           20        -1      
Кукушкин         0          -1      
Мордушкин       430      -1

тогда задача решается
select ФИО, сумма
from табличка
order by ФИО asc, флаг desc


 
03111978   (2010-09-03 12:23) [35]


> проще
> ФИО                сумма   флаг
> ----                ------   ---
> Иванов            100        1        
> Петров             150       1        
> Сидоров           20         1        
> Кукушкин         0           1    
> Мордушкин       43         1      
> Иванов            110       -1      
> Петров             50        -1      
> Сидоров           20        -1      
> Кукушкин         0          -1      
> Мордушкин       430      -1
>
> тогда задача решается
> select ФИО, сумма
> from табличка
> order by ФИО asc, флаг desc


У меня нет этой таблички, ее нужно получить в таком виде



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.11.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.004 c
2-1283636491
Alexandro
2010-09-05 01:41
2010.11.28
Взаимодействие сервиса с клавиатурой


15-1282422585
Юрий
2010-08-22 00:29
2010.11.28
С днем рождения ! 22 августа 2010 воскресенье


2-1284037319
ZV
2010-09-09 17:01
2010.11.28
TTimer процедура обработки события таймера


2-1283425358
bostar
2010-09-02 15:02
2010.11.28
про пиктограммы


6-1229960991
Zlodeyz
2008-12-22 18:49
2010.11.28
Помогите создать Dial Up соединение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский