MySQL таблица внутри соединения

0

У меня есть таблица tblsale.
В этой таблице у меня есть поле под названием BillType, которое содержит "s" и "r" (s = sale, r = returns)

В таблице собрано 25 записей. Из них 7 записей - "r", а остальные записи - "s".

Как написать запрос, чтобы мой результирующий набор включал следующие столбцы:

То, что нужно точно, ниже

Amount BillType Amount  BillType   Date
 100      s       50       r   29-11-2010
 120      s       20       r   28-11-2010
 130      s       30       r   27-11-2010
 140      s       50       r   26-11-2010
  • 0
    Ваш вопрос неясен .. Что вы хотите из данных .. Только записи "Продажа", "Возврат", всего "НДС" или "AfterDiscount", связанные с продажей или возвратом, или и то и другое ???
  • 0
    Ну, что запрос должен вернуть ? Вы точно описали таблицу, но я не вижу, что вы хотите сделать с данными. Просто получить их все из БД? Фильтровать их? По каким критериям?
Показать ещё 3 комментария
Теги:

2 ответа

1
Лучший ответ

То, что вам кажется нужным, - это результаты двух запросов, продаж и возвратов, бок о бок. Это можно сделать с помощью kludge следующим образом:

       select amount, sale, returnamount, returned, returndate
       from
       (
       select amount, 1 as sale, 0 as returnamount, 0 as returned, '' as returndate
       from sales where billtype='s'
       union
       select 0 as amount, 0 as sale, amount as returnamount, 1 as returned, date as returndate
       from sales where billtype ='r'
       ) 

Возможно, вам нужно указать дату в строковое представление. Объединенным наборам нужна одна и та же структура столбцов, поэтому вы создаете фиктивные столбцы. (Вы не запрашивали дату продажи для продажи.)

Или вы можете сделать это с помощью инструкции CASE WHEN.

0

Я не уверен, что вы спрашиваете, но может быть:

SELECT BillNo, VAT, BillType, AfterDiscount FROM tblsale WHERE BillType = 's';

Ещё вопросы

Сообщество Overcoder
Наверх
Меню