나는SQL 추가 기능은 쉼표로 구분 된 하나의 셀 ID를 처리
select catalogid, numitems, allitems - numitems ignoreditems
from (
select i.catalogid,
sum(case when (ocardtype in ('PayPal','Sofort') OR
ocardtype in ('mastercard','visa') and
odate is not null) AND NOT EXISTS (
select * from booked b
where b.ignoredoid = o.orderid
) then numitems
else 0 end) numitems,
sum(numitems) allitems
from orders o
join oitems i on i.orderid=o.orderid
group by i.catalogid
) X
아래의 설명을 읽어 보시기 바랍니다 무엇의 아이디어를 다음과 같은 SQL 테이블을 얻기 위해 다음과 같은 SQL 쿼리를
oitems 테이블
+---------+-----------+----------+
| orderid | catalogid | numitems |
+---------+-----------+----------+
| O737 | 353 | 1 |
| O738 | 364 | 4 |
| O739 | 353 | 3 |
| O740 | 364 | 6 |
| O741 | 882 | 2 |
| O742 | 224 | 5 |
| O743 | 224 | 2 |
+---------+-----------+----------+
Orders 테이블
+-----------------+------------+------------+
| orderid | ocardtype | odate |
+-----------------+------------+------------+
| O737 | Paypal | | 'OK
| O738 | MasterCard | 01.02.2012 | 'OK
| O739 | MasterCard | 02.02.2012 | 'OK
| O740 | Visa | 03.02.2012 | 'OK
| O741 | Sofort | | 'OK
| O742 | | | 'ignore because ocardtype is empty
| O743 | MasterCard | | 'ignore because Mastercard no odate
+-----------------+------------+------------+
는
reusltant 데이터 테이블
+-----------+----------+--------------+
| catalogid | numitems | ignoreditems |
+-----------+----------+--------------+
| 353 | 4 | 0 |
| 364 | 10 | 0 |
| 882 | 2 | 0 |
| 224 | 0 | 7 |
+-----------+----------+--------------+
아이디어는 무시 ocardtype
가 비어
- 경우 다음과 같은 조건으로 oitems 테이블의 데이터에 depinding 같은 catalogId에이 제품에 대한의 numItems 열을 요약하는 것입니다
numitems
과 합계로0
으로 간주하고 일부 주문에 대해ocardtype
이 Ma 인 경우 무시 된 항목을ignoreditems
열 - sterCard 또는 비자와
odate
이 가 비어 후numitems
을 무시하고0
로 고려하고ignoreditems
열 - ocardtype 페이팔 또는 Sofort 경우에 무시 항목을 합계 한 후 바로
odate
인해를 확인하지 않고numitems
합 을 그 종류는 내가 열 이 열이 나는 하려는 위의 표에서orderids
을 포함, ignoredoid 불렀다 예약라는 다른 테이블에odate
- 3 조건이 위 satsfied 경우에도을 무시 필요하지 이 점에
는 쿼리에 그의 대답에 일명 cyberkiwi를 @ 리차드 완벽 덕분 노력이 question 질문은
, 나는 다음과 같은
+-----------+----------+--------------+-------------------+
| catalogid | numitems | ignoreditems | orderidcollection |
+-----------+----------+--------------+-------------------+
| 353 | 4 | 0 | O737,O739 |
| 364 | 10 | 0 | O738,O740 |
| 882 | 2 | 0 | O741 |
| 224 | 0 | 7 | |'O742 & O743 are ignored
+-----------+----------+--------------+-------------------+
같이하는 데이터 테이블 결과를 필요
orderidcollection
열의 유일한 변경 사항을 볼 수 있듯이 orderid
을 코드에서 무시되지 않는 경우에만 쉼표로 구분 된 새 열에 추가해야합니다. 운이없는 한 쌍의 시간 동안 인터넷 검색! 은 SQL에서도 가능합니까?
어떤 데이터베이스가 있습니까? 이를위한 솔루션은 데이터베이스와 관련 될 수 있습니다. – HLGEM
@HLGEM Microsoft SQL Server 및 vb.net에서이 qury를 실행하고 있으며 SQL과의 내 experiance는 거의 0입니다. – user1570048
@ user1570048, SQL Server의 버전은 무엇입니까? –