2014-12-10 3 views
1

У меня есть следующий запрос.Показать несколько строк как одну строку SQL Server 2008

enter image description here

Мой результат после выполнения это.

enter image description here

Но проблема здесь для выставления счета нет 'I261001001S000371' нет 2 записей. Я хочу показать как 1 запись. Средства для этой суммы суммы счета и суммы проверки должны отображаться в 1 строке.

Любые идеи, пожалуйста?

+0

Чтобы показать это в одной строке вам нужно будет придумать какую-то логику, чтобы показать, где сумма идет из. счета-фактуры оплачиваются только наличными/чеком/кредитом или есть ли другие способы? Или, если вы не хотите разбивки, просто удалите столбцы cash/check/credit – Matt

ответ

1

Попробуйте этот запрос: используйте функцию aggrigate, чтобы суммировать все наличные деньги, которые являются общими для всего счета-фактуры. Я не уверен в поселении. Вы можете использовать aggrigate, ЕСЛИ необходимо.

SELECT InVoiceNo, sum(cash), sum(cheque), 
    sum(credit), NetAmount, Settle 
from 
    (--Your select query to get result as specified in question) as a 
group by InVoiceNo, NetAmount, Settle 
+0

Вы не должны 'SUM (NetAmount)'. Ваш результат будет правильным, потому что у вас есть его в 'GROUP BY', но он является результативным для' SUM' то, что находится в разделе GROUP BY' – Jaques

1

Изменить выберите заявление SUM в Cash и Cheque и Credit колонны GROUP BY InvoiceNo, NetAmount, Settle

Таким образом, каждый счет будет показывать общее количество каждого из столбцов, которые вы указываете в операторах Case и получить все это в одной строке

1

Вы можете использовать Over-clause с КТР, чтобы подвести их в InvoiceNo:

WITH CTE AS 
(
    SELECT InvoiceNo, NetAmount, Settle, Credit, 
      RN = ROW_NUMBER() OVER (PARTITION BY InvoiceNo ORDER BY InvoiceNo), 
      Cash = SUM(CASH) OVER (PARTITION BY InvoiceNo), 
      Cheque = SUM(Cheque) OVER (PARTITION BY InvoiceNo), 
      Credit = SUM(Credit) OVER (PARTITION BY InvoiceNo) 
    FROM dbo.InvoiceHeader -- ... and other tables ... 
) 
SELECT InvoiceNo, NetAmount, Settle, Cash, Cheque, Credit 
FROM CTE WHERE RN = 1 
+0

. Добавить в логику для работы с кредитом, а также это прекрасно – Matt

+0

@Matt: но кредит не упоминался: _ «для этой суммы суммы счета и контрольной суммы показывается шоу в 1 строке» _. Однако я думаю, что OP понимает логику. –

+0

я знаю, но вы можете поспорить, он понадобится;) – Matt

Смежные вопросы