테이블이 2 개 있습니다. 첫 번째는 일부 쇼핑 목록의 총 가치를 보유하고 두 번째 표는 해당 목록의 제품을 보유합니다. 쇼핑 목록이 완료되면 목록 번호 (nrList
은 일종의 목록 ID 임)와 해당 목록의 제품 수 nrProducts
과 같은 일부 정보와 함께 total
테이블에 합계 금액이 추가되고 제품은 listproducts
테이블로 이동합니다 . 상품명이 tomato,oranges and apples
인 제품이 3 개 있다고 가정 해 봅시다. 앞서 말했듯이, 모두 목록 ID와 같은 nrList
을 공유 할 것입니다.두 테이블의 값을 비교하십시오.
첫 번째 테이블 totals
:
CREATE TABLE IF NOT EXISTS `totals` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nrList` int(11) NOT NULL,
`nrProducts` int(11) DEFAULT NULL,
`total` double NOT NULL,
`data` date DEFAULT NULL,
`ora` time DEFAULT NULL,
`dataora` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`Operator` varchar(50) DEFAULT NULL,
`anulat` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
)
두 번째 테이블 listproducts
:
CREATE TABLE IF NOT EXISTS `listproducts` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nrList` int(11) DEFAULT NULL,
`product` varchar(50) DEFAULT NULL,
`quantity` double DEFAULT NULL,
`price` double DEFAULT NULL,
`data` date DEFAULT NULL,
`operator` varchar(50) NOT NULL,
`anulat` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
지금, 내가하고 싶은 두 가지를 가지고, 그들은 매우 유사하다. 가 약간의 정보와 행 수와 listproducts
테이블 .IN total=10$
nrProducts=3
및 nrList=1
내가 모든 nrList=1
을 갖는 각각 price=3$,3$,4$
을 가진 3 개 행이 뜻합니다 내가 3 products.In totals
테이블 목록을 가지고 말할 수 있습니다. 자, 내가 다음과 같은 수표를 원한다 : 1. 그 값이 nrProducts=3
인 경우 다른 테이블의 해당 목록에 대한 제품이 있습니다. 2. 첫 번째 테이블의 합계가 두 번째 테이블의 제품 합계와 같은지 확인하십시오 (수량 * 가격 SUM)
나는 몇 가지 작업을 수행했지만 다음에해야 할 일을 모릅니다. . 나는이를 사용하여 두 번째 테이블에서 각 목록에 대한 제품의 수를 얻을 수 있었다 :
SELECT nrList,operator,COUNT(*) as count FROM listproducts GROUP BY nrList
하지만 난 값이 두 개의 쿼리를 수행하지 않고 동일한 경우 비교하는 방법을 모르겠어요.
다시 두 번째로 합계를 얻는 방법을 알고 있지만 두 가지 별도의 쿼리를 수행하지 않고 비교하는 방법을 모르겠습니다.
SELECT SUM(price*quantity) FROM `listproducts` WHERE nrList='10' and operator like '%x%'
내가 다른 선택에서 수행 한 것과 같은 작업을 수행 할 수도 있습니다. 이것은 문제가 아닙니다.
문제는 두 가지 일을하는 대신 하나의 선택에서 원하는 작업을 수행하는 방법을 모르겠다는 것입니다. 자바에서이 작업을 수행하므로 비교할 수 있지만 알고 싶습니다. 만약 내가 어떻게 하나의 쿼리 에서이 작업을 수행 할 수 있습니다.
긴 게시물을 보내 주셔서 감사 드리며 죄송합니다.
쿨, 당신에게 몇 가지 새로운 물건 감사를 발견! 감사 ! –