Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > สอบถามเกี่ยวกับ SQL หาจำนวนงานของพนักงาน 4 คนครับ ต้องเขียนยังไงให้ได้รูปแบบนี้



 

สอบถามเกี่ยวกับ SQL หาจำนวนงานของพนักงาน 4 คนครับ ต้องเขียนยังไงให้ได้รูปแบบนี้

 



Topic : 106815



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์




job1

จากรูป ในฐานข้อมูลมีพนักงาน 4 คน อยากรู้ว่าจะเขียน SQL คำนวณว่าแต่ละคนมีจำนวนงานเท่าไหร่ครับ

เงื่อนไขคือ
- ถ้า job_type เป็น 6 ให้นับเป็นแค่ 1 งานของพนักงานคนนั้น ไม่ว่าจะมีกี่เรคคอร์ดก็ตาม
- ถ้า job_type เป็น 2 นับทุกเรคคอร์ด

แล้วเอาค่าที่ได้จาก job_type ทั้ง 2 มาบวกกัน เอาคนที่ได้เยอะสุดแค่ 3 คน อยากรู้ว่าจะเขียน SQL ยังไงให้ได้ตามกรอบสีส้ม



ฐานข้อมูลครับ
-- phpMyAdmin SQL Dump
-- version 2.10.3
-- http://www.phpmyadmin.net
-- 
-- Host: localhost
-- Generation Time: Mar 12, 2014 at 01:12 PM
-- Server version: 5.0.51
-- PHP Version: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

-- 
-- Database: `test`
-- 

-- --------------------------------------------------------

-- 
-- Table structure for table `job`
-- 

CREATE TABLE `job` (
  `id` int(11) NOT NULL auto_increment,
  `job_emp` varchar(4) NOT NULL,
  `customer` varchar(3) NOT NULL,
  `job_type` varchar(2) NOT NULL,
  `job_date` datetime NOT NULL,
  `job_detail` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;

-- 
-- Dumping data for table `job`
-- 

INSERT INTO `job` VALUES (1, 'emp1', '001', '2', '2014-03-01 16:23:12', 'gjhfghguy');
INSERT INTO `job` VALUES (2, 'emp2', '004', '2', '2014-03-01 16:23:36', 'hrtdrch');
INSERT INTO `job` VALUES (3, 'emp1', '001', '6', '2014-03-01 16:24:21', 'gjftft');
INSERT INTO `job` VALUES (4, 'emp4', '002', '2', '2014-03-02 16:24:38', '');
INSERT INTO `job` VALUES (5, 'emp1', '002', '2', '2014-03-03 16:25:41', '');
INSERT INTO `job` VALUES (6, 'emp2', '003', '6', '2014-03-03 16:25:49', '');
INSERT INTO `job` VALUES (7, 'emp3', '002', '2', '2014-03-03 16:25:41', '');
INSERT INTO `job` VALUES (8, 'emp1', '002', '2', '2014-03-03 16:25:49', '');
INSERT INTO `job` VALUES (9, 'emp4', '001', '2', '2014-03-03 16:25:41', '');
INSERT INTO `job` VALUES (10, 'emp2', '003', '6', '2014-03-03 16:25:49', '');
INSERT INTO `job` VALUES (11, 'emp3', '002', '6', '2014-03-04 16:27:12', '');
INSERT INTO `job` VALUES (12, 'emp1', '004', '2', '2014-03-05 16:27:23', '');
INSERT INTO `job` VALUES (13, 'emp4', '004', '6', '2014-03-04 16:27:12', '');
INSERT INTO `job` VALUES (14, 'emp3', '001', '2', '2014-03-05 16:27:23', '');
INSERT INTO `job` VALUES (15, 'emp4', '001', '2', '2014-03-04 16:27:12', '');
INSERT INTO `job` VALUES (16, 'emp4', '001', '2', '2014-03-05 16:27:23', '');




Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-03-12 13:23:58 By : giverplus View : 1125 Reply : 4
 

 

No. 1



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

Code (SQL)
SELECT `job_emp`, SUM(`cnt2`) AS 'job_type 2', SUM(`cnt6`) AS 'job_type 6', SUM(`cnt2`)+SUM(`cnt6`) AS 'type2+type6' FROM (SELECT `job_emp`,`job_type`,IF(`job_type`= 6, 1, 0) AS 'cnt6', IF(`job_type`=2, ขอลบออก ให้ลองคิดดูว่ามันควรเป็นอะไร, 0) AS 'ขอลบออก ให้ลองคิดดูว่ามันควรเป็นอะไร' FROM `job` GROUP BY  `job_emp`,`job_type`) AS `c` GROUP BY `job_emp` ORDER BY `type2+type6` DESC LIMIT 0,3

U0VMRUNUIGBqb2JfZW1wYCwgU1VNKGBjbnQyYCkgQVMgJ2pvYl90eXBlIDInLCBTVU0oY
GNudDZgKSBBUyAnam9iX3R5cGUgNicsIFNVTShgY250MmApK1NVTShgY250NmA
pIEFTICd0eXBlMit0eXBlNicgRlJPTSAoU0VMRUNUIGBqb2JfZW1wYCxgam9iX3R5cGVgLElGKGBqb2JfdHlwZWA
9IDYsIDEsIDApIEFTICdjbnQ2JywgSUYoYGpvYl90eXBlYD0yLCBDT1VO
VCgqKSwgMCkgQVMgJ2NudDInIEZST00gYGpvYmAgR1JPVVAgQlkgIGBqb2JfZW1wYCxgam9iX3R5cGVg
KSBBUyBgY2AgR1JPVVAgQlkgYGpvYl9lbXBgIE9SREVSIEJZIGB0eXBlMit0e
XBlNmAgREVTQyBMSU1JVCAwLDM=









ประวัติการแก้ไข
2014-03-12 13:54:17
2014-03-12 13:54:36
2014-03-12 13:55:18
2014-03-12 13:56:30
2014-03-12 13:57:10
2014-03-12 13:57:36
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-03-12 13:52:10 By : itpcc
 


 

No. 2



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์


Code (SQL)
SELECT `job_emp`, SUM(`cnt2`) AS 'job_type 2', SUM(`cnt6`) AS 'job_type 6', SUM(`cnt2`)+SUM(`cnt6`) AS 'type2+type6' 
FROM (SELECT `job_emp`,`job_type`,IF(`job_type`= 6, 1, 0) AS 'cnt6', IF(`job_type`=2, 1, 0) AS 'cnt2' FROM `job` GROUP BY  `job_emp`,`job_type`) AS `c` GROUP BY `job_emp` ORDER BY `type2+type6` DESC LIMIT 0,3


มันได้ผลลัพธ์แบบนี้ครับ ไม่เข้าใจ IF() ตัวเลข 2 หลักหลังคืออะไรครับ
22
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-03-12 14:38:26 By : giverplus
 

 

No. 3



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

IF(เงื่อนไข, ค่าที่ได้เมื่อจริง, ค่าที่ได้เมื่อไม่จริง)
เฉลยฮะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-03-12 15:38:54 By : itpcc
 


 

No. 4



โพสกระทู้ ( 45 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับ ได้ล่ะๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-03-12 15:46:33 By : giverplus
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเกี่ยวกับ SQL หาจำนวนงานของพนักงาน 4 คนครับ ต้องเขียนยังไงให้ได้รูปแบบนี้
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่